diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 9d3bd639e1..aa549c0361 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -13,6 +13,12 @@ services: POSTGRES_USER: inventree_user POSTGRES_PASSWORD: inventree_password + redis: + image: redis:7.0 + restart: always + expose: + - 6379 + inventree: build: context: .. @@ -31,6 +37,8 @@ services: INVENTREE_DB_HOST: db INVENTREE_DB_USER: inventree_user INVENTREE_DB_PASSWORD: inventree_password + INVENTREE_CACHE_HOST: redis + INVENTREE_CACHE_PORT: 6379 INVENTREE_PLUGINS_ENABLED: True INVENTREE_SITE_URL: http://localhost:8000 INVENTREE_CORS_ORIGIN_ALLOW_ALL: True diff --git a/.github/actions/migration/action.yaml b/.github/actions/migration/action.yaml index a5c4c7a56f..22c5d45864 100644 --- a/.github/actions/migration/action.yaml +++ b/.github/actions/migration/action.yaml @@ -13,5 +13,5 @@ runs: invoke export-records -f data.json python3 ./src/backend/InvenTree/manage.py flush --noinput invoke migrate - invoke import-records -f data.json - invoke import-records -f data.json + invoke import-records -c -f data.json + invoke import-records -c -f data.json diff --git a/.github/actions/setup/action.yaml b/.github/actions/setup/action.yaml index 44ba540d33..41e5db55a9 100644 --- a/.github/actions/setup/action.yaml +++ b/.github/actions/setup/action.yaml @@ -49,9 +49,10 @@ runs: shell: bash run: | python3 -m pip install -U pip - pip3 install invoke wheel uv - - name: Set the VIRTUAL_ENV variable for uv to work - run: echo "VIRTUAL_ENV=${Python_ROOT_DIR}" >> $GITHUB_ENV + pip3 install -U invoke wheel + pip3 install 'uv<0.3.0' + - name: Allow uv to use the system Python by default + run: echo "UV_SYSTEM_PYTHON=1" >> $GITHUB_ENV shell: bash - name: Install Specific Python Dependencies if: ${{ inputs.pip-dependency }} @@ -82,7 +83,7 @@ runs: # Invoke commands - name: Install dev requirements - if: ${{ inputs.dev-install == 'true' ||inputs.install == 'true' }} + if: ${{ inputs.dev-install == 'true' || inputs.install == 'true' }} shell: bash run: uv pip install --require-hashes -r src/backend/requirements-dev.txt - name: Run invoke install diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0a6bdd5b8f..8d14eeb906 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -15,26 +15,11 @@ updates: interval: weekly - package-ecosystem: pip - directory: /contrib/container - schedule: - interval: weekly - - - package-ecosystem: pip - directory: /docs - schedule: - interval: weekly - - - package-ecosystem: npm - directory: /src/backend - schedule: - interval: weekly - groups: - dependencies: - patterns: - - "*" # Include all dependencies - - - package-ecosystem: pip - directory: /src/backend + directories: + - /contrib/container + - /docs + - /.github + - /src/backend schedule: interval: weekly groups: @@ -43,7 +28,9 @@ updates: - "*" # Include all dependencies - package-ecosystem: npm - directory: /src/frontend + directories: + - /src/frontend + - /src/backend schedule: interval: weekly groups: diff --git a/.github/release.yml b/.github/release.yml index 65b45fc3da..182d1a747a 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -31,6 +31,9 @@ changelog: - setup - demo - CI + - title: Dependencies + labels: + - dependency - title: Other Changes labels: - "*" diff --git a/.github/requirements.in b/.github/requirements.in deleted file mode 100644 index 5d479962c1..0000000000 --- a/.github/requirements.in +++ /dev/null @@ -1,3 +0,0 @@ -# Packages needed for CI - requests==2.31.0 - pyyaml==6.0.1 diff --git a/.github/workflows/check_translations.yaml b/.github/workflows/check_translations.yaml index 9565f1a6d8..3377460f6e 100644 --- a/.github/workflows/check_translations.yaml +++ b/.github/workflows/check_translations.yaml @@ -30,7 +30,7 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 7c5b9d9384..25034a1413 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -39,19 +39,16 @@ jobs: docker: ${{ steps.filter.outputs.docker }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # pin@v3.0.2 id: filter with: filters: | docker: - .github/workflows/docker.yaml - - docker/** - - docker-compose.yml - - docker.dev.env - - Dockerfile - - InvenTree/settings.py - - requirements.txt + - contrib/container/** + - src/backend/InvenTree/InvenTree/settings.py + - src/backend/requirements.txt - tasks.py # Build the docker image @@ -69,14 +66,14 @@ jobs: steps: - name: Check out repo - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Set Up Python ${{ env.python_version }} uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5.1.0 with: python-version: ${{ env.python_version }} - name: Version Check run: | - pip install --require-hashes -r .github/requirements.txt + pip install --require-hashes -r contrib/dev_reqs/requirements.txt python3 .github/scripts/version_check.py echo "git_commit_hash=$(git rev-parse --short HEAD)" >> $GITHUB_ENV echo "git_commit_date=$(git show -s --format=%ci)" >> $GITHUB_ENV @@ -88,12 +85,17 @@ jobs: docker run --rm inventree-test invoke --list docker run --rm inventree-test gunicorn --version docker run --rm inventree-test pg_dump --version + docker run --rm inventree-test test -f /home/inventree/init.sh + docker run --rm inventree-test test -f /home/inventree/tasks.py + docker run --rm inventree-test test -f /home/inventree/gunicorn.conf.py + docker run --rm inventree-test test -f /home/inventree/src/backend/requirements.txt docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/manage.py - name: Build Docker Image # Build the development docker image (using docker-compose.yml) run: docker compose --project-directory . -f contrib/container/dev-docker-compose.yml build --no-cache - name: Update Docker Image run: | + docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke install docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke update docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke setup-dev docker compose --project-directory . -f contrib/container/dev-docker-compose.yml up -d @@ -113,9 +115,10 @@ jobs: - name: Run Unit Tests run: | echo "GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> contrib/container/docker.dev.env - docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke test --disable-pty - docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke test --migrations --disable-pty - docker compose --project-directory . -f contrib/container/dev-docker-compose.yml down + docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run --rm inventree-dev-server invoke test --disable-pty + - name: Run Migration Tests + run: | + docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run --rm inventree-dev-server invoke test --migrations - name: Clean up test folder run: | rm -rf InvenTree/_testfolder @@ -124,7 +127,7 @@ jobs: uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # pin@v3.0.0 - name: Set up Docker Buildx if: github.event_name != 'pull_request' - uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # pin@v3.2.0 + uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # pin@v3.3.0 - name: Set up cosign if: github.event_name != 'pull_request' uses: sigstore/cosign-installer@59acb6260d9c0ba8f4a2f9d9b48431a222b68e20 # pin@v3.5.0 @@ -138,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@e92390c5fb421da1463c202d546fed0ec5c39f20 # pin@v3.1.0 + uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # pin@v3.2.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@e92390c5fb421da1463c202d546fed0ec5c39f20 # pin@v3.1.0 + uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # pin@v3.2.0 with: registry: ghcr.io username: ${{ github.actor }} @@ -163,7 +166,7 @@ jobs: - name: Push Docker Images id: push-docker if: github.event_name != 'pull_request' - uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # pin@v5.3.0 + uses: docker/build-push-action@31159d49c0d4756269a0940a750801a1ea5d7003 # pin@v6.1.0 with: context: . file: ./contrib/container/Dockerfile diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml index 1b778950bb..3ffba97dd6 100644 --- a/.github/workflows/qc_checks.yaml +++ b/.github/workflows/qc_checks.yaml @@ -40,7 +40,7 @@ jobs: force: ${{ steps.force.outputs.force }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # pin@v3.0.2 id: filter with: @@ -72,7 +72,7 @@ jobs: needs: ["pre-commit"] steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -94,7 +94,7 @@ jobs: if: needs.paths-filter.outputs.server == 'true' || needs.paths-filter.outputs.frontend == 'true' || needs.paths-filter.outputs.force == 'true' steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Set up Python ${{ env.python_version }} uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5.1.0 with: @@ -104,7 +104,7 @@ jobs: uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # pin@v3.0.1 - name: Check Version run: | - pip install --require-hashes -r .github/requirements.txt + pip install --require-hashes -r contrib/dev_reqs/requirements.txt python3 .github/scripts/version_check.py mkdocs: @@ -115,15 +115,15 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Set up Python ${{ env.python_version }} uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5.1.0 with: python-version: ${{ env.python_version }} - name: Check Config run: | - pip install --require-hashes -r .github/requirements.txt - pip install -r docs/requirements.txt + pip install --require-hashes -r contrib/dev_reqs/requirements.txt + pip install --require-hashes -r docs/requirements.txt python docs/ci/check_mkdocs_config.py - name: Check Links uses: gaurav-nelson/github-action-markdown-link-check@5c5dfc0ac2e225883c0e5f03a85311ec2830d368 # v1 @@ -151,7 +151,7 @@ jobs: version: ${{ steps.version.outputs.version }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -161,14 +161,14 @@ jobs: - name: Export API Documentation run: invoke schema --ignore-warnings --filename src/backend/InvenTree/schema.yml - name: Upload schema - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # pin@v4.3.1 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # pin@v4.3.3 with: name: schema.yml path: src/backend/InvenTree/schema.yml - name: Download public schema if: needs.paths-filter.outputs.api == 'false' run: | - pip install --require-hashes -r .github/requirements.txt >/dev/null 2>&1 + pip install --require-hashes -r contrib/dev_reqs/requirements.txt >/dev/null 2>&1 version="$(python3 .github/scripts/version_check.py only_version 2>&1)" echo "Version: $version" url="https://raw.githubusercontent.com/inventree/schema/main/export/${version}/api.yaml" @@ -187,7 +187,7 @@ jobs: id: version if: github.ref == 'refs/heads/master' && needs.paths-filter.outputs.api == 'true' run: | - pip install --require-hashes -r .github/requirements.txt >/dev/null 2>&1 + pip install --require-hashes -r contrib/dev_reqs/requirements.txt >/dev/null 2>&1 version="$(python3 .github/scripts/version_check.py only_version 2>&1)" echo "Version: $version" echo "version=$version" >> "$GITHUB_OUTPUT" @@ -201,12 +201,12 @@ jobs: version: ${{ needs.schema.outputs.version }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: inventree/schema token: ${{ secrets.SCHEMA_PAT }} - name: Download schema artifact - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 + uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 with: name: schema.yml - name: Move schema to correct location @@ -238,7 +238,7 @@ jobs: INVENTREE_SITE_URL: http://127.0.0.1:12345 steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -261,21 +261,25 @@ jobs: coverage run -m unittest discover -s test/ coverage: - name: Tests - DB [SQLite] + Coverage + name: Tests - DB [SQLite] + Coverage ${{ matrix.python_version }} runs-on: ubuntu-20.04 needs: ["pre-commit", "paths-filter"] if: needs.paths-filter.outputs.server == 'true' || needs.paths-filter.outputs.force == 'true' continue-on-error: true # continue if a step fails so that coverage gets pushed + strategy: + matrix: + python_version: [3.9, 3.12] env: INVENTREE_DB_NAME: ./inventree.sqlite INVENTREE_DB_ENGINE: sqlite3 INVENTREE_PLUGINS_ENABLED: true GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + python_version: ${{ matrix.python_version }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -291,7 +295,7 @@ jobs: - name: Coverage Tests run: invoke test --coverage - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # pin@v4.3.0 + uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # pin@v4.5.0 if: always() with: token: ${{ secrets.CODECOV_TOKEN }} @@ -329,7 +333,7 @@ jobs: - 6379:6379 steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -373,7 +377,7 @@ jobs: - 3306:3306 steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -412,7 +416,7 @@ jobs: - 5432:5432 steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -423,7 +427,7 @@ jobs: - name: Run Tests run: invoke test --migrations --report --coverage - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # pin@v4.3.0 + uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # pin@v4.5.0 if: always() with: token: ${{ secrets.CODECOV_TOKEN }} @@ -443,7 +447,7 @@ jobs: INVENTREE_PLUGINS_ENABLED: false steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 name: Checkout Code - name: Environment Setup uses: ./.github/actions/setup @@ -500,7 +504,7 @@ jobs: VITE_COVERAGE: true steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -518,7 +522,7 @@ jobs: - name: Run Playwright tests id: tests run: cd src/frontend && npx nyc playwright test - - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # pin@v4 + - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # pin@v4 if: ${{ !cancelled() && steps.tests.outcome == 'failure' }} with: name: playwright-report @@ -528,7 +532,7 @@ jobs: if: always() run: cd src/frontend && npx nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --exclude-after-remap false - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # pin@v4.3.0 + uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # pin@v4.5.0 if: always() with: token: ${{ secrets.CODECOV_TOKEN }} @@ -541,7 +545,7 @@ jobs: timeout-minutes: 60 steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -554,7 +558,7 @@ jobs: run: | cd src/backend/InvenTree/web/static zip -r frontend-build.zip web/ web/.vite - - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # pin@v4.3.1 + - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # pin@v4.3.3 with: name: frontend-build path: src/backend/InvenTree/web/static/web diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1a74ca3d68..adebc32240 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -5,20 +5,20 @@ on: release: types: [published] -permissions: - contents: read - jobs: stable: runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Checkout Code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Version Check run: | - pip install --require-hashes -r .github/requirements.txt + pip install --require-hashes -r contrib/dev_reqs/requirements.txt python3 .github/scripts/version_check.py - name: Push to Stable Branch uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # pin@v0.8.0 @@ -30,8 +30,11 @@ jobs: publish-build: runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: @@ -43,7 +46,7 @@ jobs: - name: Zip frontend run: | cd src/backend/InvenTree/web/static/web - zip -r ../frontend-build.zip * + zip -r ../frontend-build.zip * .vite - uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # pin@2.9.0 with: repo_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/scorecard.yaml b/.github/workflows/scorecard.yaml index 6db68c5d05..916a3b1bbe 100644 --- a/.github/workflows/scorecard.yaml +++ b/.github/workflows/scorecard.yaml @@ -32,12 +32,12 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1 + uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3 with: results_file: results.sarif results_format: sarif @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: name: SARIF file path: results.sarif @@ -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@df5a14dc28094dc936e103b37d749c6628682b60 # v3.25.0 + uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 with: sarif_file: results.sarif diff --git a/.github/workflows/translations.yaml b/.github/workflows/translations.yaml index c0438b60ea..6ffddb4d02 100644 --- a/.github/workflows/translations.yaml +++ b/.github/workflows/translations.yaml @@ -30,7 +30,7 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup uses: ./.github/actions/setup with: diff --git a/.gitignore b/.gitignore index 8c119f2ab2..4bc362f653 100644 --- a/.gitignore +++ b/.gitignore @@ -108,5 +108,6 @@ src/backend/InvenTree/web/static InvenTree/web/static # Generated docs files +docs/schema.yml docs/docs/api/*.yml docs/docs/api/schema/*.yml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0f8057da83..6c99a6f6d5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -39,8 +39,16 @@ repos: files: src/backend/requirements\.(in|txt)$ - id: pip-compile name: pip-compile requirements.txt - args: [.github/requirements.in, -o, .github/requirements.txt,--python-version=3.9, --no-strip-extras, --generate-hashes] - files: .github/requirements\.(in|txt)$ + args: [contrib/dev_reqs/requirements.in, -o, contrib/dev_reqs/requirements.txt,--python-version=3.9, --no-strip-extras, --generate-hashes] + files: contrib/dev_reqs/requirements\.(in|txt)$ + - id: pip-compile + name: pip-compile requirements.txt + args: [docs/requirements.in, -o, docs/requirements.txt,--python-version=3.9, --no-strip-extras, --generate-hashes] + files: docs/requirements\.(in|txt)$ + - id: pip-compile + name: pip-compile requirements.txt + args: [contrib/container/requirements.in, -o, contrib/container/requirements.txt,--python-version=3.11, --no-strip-extras, --generate-hashes] + files: contrib/container/requirements\.(in|txt)$ - repo: https://github.com/Riverside-Healthcare/djLint rev: v1.34.1 hooks: @@ -84,3 +92,7 @@ repos: # rev: 3.0.0 # hooks: # - id: shellcheck +- repo: https://github.com/isidentical/teyit + rev: 0.4.3 + hooks: + - id: teyit diff --git a/README.md b/README.md index 8c21973f35..f329c20758 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ Refer to the [getting started guide](https://docs.inventree.org/en/latest/start/ ## :iphone: Mobile App -InvenTree is supported by a [companion mobile app](https://docs.inventree.org/en/latest/app/app/) which allows users access to stock control information and functionality. +InvenTree is supported by a [companion mobile app](https://docs.inventree.org/app/) which allows users access to stock control information and functionality.
| Board | {{ part.IPN }} |
| Description | {{ part.description }} |
| User | {{ user }} |
| Date | {{ date }} |
| Number of different components (codes) | {{ bom_items.count }} |
| {% trans "IPN" %} | -{% trans "MPN" %} | -{% trans "Manufacturer" %} | -{% trans "Quantity" %} | -{% trans "Reference" %} | -{% trans "Substitute" %} | -
|---|---|---|---|---|---|
| {{ line.sub_part.IPN }} | -{{ line.sub_part.name }} | -- {% for manf in line.sub_part.manufacturer_parts.all %} - {{ manf.manufacturer.name }} - {% endfor %} - | -{% decimal line.quantity %} | -{{ line.reference }} | -
- {% for sub in line.substitutes.all %}
- {{ sub.part.IPN }} - {% endfor %} - |
-
| Original IPN | -Allocated Part | -Location | -PCS | -|
|---|---|---|---|---|
| {{ line.bom_item.sub_part.IPN }} | - {% if line.stock_item.part.IPN != line.bom_item.sub_part.IPN %} -{{ line.stock_item.part.IPN }} | - {% else %} -{{ line.stock_item.part.IPN }} | - {% endif %} -{{ line.stock_item.location.pathstring }} | -{{ line.quantity }} | -
-
- | {% trans "Build Order" %} | -{% internal_link build.get_absolute_url build %} | -
|---|---|
| {% trans "Order" %} | -{{ reference }} | -
| {% trans "Part" %} | -{% internal_link part.get_absolute_url part.IPN %} | -
| {% trans "Quantity" %} | -{{ build.quantity }} | -
| {% trans "Description" %} | -{{ build.title }} | -
| {% trans "Issued" %} | -{% format_date build.creation_date %} | -
| {% trans "Target Date" %} | -- {% if build.target_date %} - {% format_date build.target_date %} - {% else %} - Not specified - {% endif %} - | -
| {% trans "Required For" %} | -{% internal_link build.parent.get_absolute_url build.parent %} | -
| {% trans "Issued By" %} | -{{ build.issued_by }} | -
| {% trans "Responsible" %} | -{{ build.responsible }} | -
| {% trans "Sub builds count" %} | -{{ build.sub_build_count }} | -
| {% trans "Sub Builds" %} | -{{ build.sub_builds }} | -
| {% trans "Overdue" %} | -{{ build.is_overdue }} | -
| {% trans "Can complete" %} | -{{ build.can_complete }} | -
| Original IPN | -Reference | -Replace width IPN | -
|---|---|---|
| {{ line.sub_part.IPN }} | -{{ line.reference }} | -{{ line.substitutes.all.0.part.IPN }} | -
|
- Build Order: {{ build.reference }} - Build Qty: {% decimal build.quantity %} - |
-
- |
-
|
- Part: {{ part.name }} - {% if part.IPN %} - IPN: {{ part.IPN }} - {% endif %} - Qty / Unit: {% decimal bom_item.quantity %} {% if part.units %}[{{ part.units }}]{% endif %} - Qty Total: {% decimal quantity %} {% if part.units %}[{{ part.units }}]{% endif %} - |
-
- |
-
-
-
-
-
-{% endraw %}
-```
-
-!!! warning "Asset Naming"
- If the requested asset name does not match the name of an uploaded asset, the template will continue without loading the image.
-
-!!! info "Assets location"
- You need to ensure your asset images to the report/assets directory in the [data directory](../start/intro.md#file-storage). Upload new assets via the [admin interface](../settings/admin.md) to ensure they are uploaded to the correct location on the server.
-
-
-## Report Snippets
-
-A powerful feature provided by the django / WeasyPrint templating framework is the ability to include external template files. This allows commonly used template features to be broken out into separate files and re-used across multiple templates.
-
-To support this, InvenTree provides report "snippets" - short (or not so short) template files which cannot be rendered by themselves, but can be called from other templates.
-
-Similar to assets files, snippet template files are uploaded via the admin interface.
-
-Snippets are included in a template as follows:
-
-```
-{% raw %}{% include 'snippets/| {{ item.part.full_name }} | -{{ item.quantity }} | -||||||||||||
| {{ item.part.full_name }} | +{{ item.quantity }} | +||||||||||||
| {{ sub_item.full_name }} | -Serial Number: {{ sub_item.serial }} | -Pass: {{ sub_item.passedAllRequiredTests }} | -
TEST LABEL{% endblock content %}' - ) - filestr.name = 'ExampleTemplate.html' - - response = self.post( - url, - data={ - 'name': 'New label', - 'description': 'A fancy new label created through API test', - 'label': filestr, - }, - format=None, - expected_code=201, - ) - - # Make sure the expected keys are in the response - self.assertIn('pk', response.data) - self.assertIn('name', response.data) - self.assertIn('description', response.data) - self.assertIn('label', response.data) - self.assertIn('filters', response.data) - self.assertIn('enabled', response.data) - - self.assertEqual(response.data['name'], 'New label') - self.assertEqual( - response.data['description'], 'A fancy new label created through API test' - ) - self.assertEqual(response.data['label'].count('ExampleTemplate'), 1) - - def test_detail_endpoint(self): - """Test that the DETAIL endpoint works for each label.""" - if not self.detail_url: - return - - # Create an item first - self.test_create_endpoint() - - labels = self.model.objects.all() - - n = len(labels) - - # Make sure at least one report defined - self.assertGreaterEqual(n, 1) - - # Check detail page for first report - response = self.get( - reverse(self.detail_url, kwargs={'pk': labels[0].pk}), expected_code=200 - ) - - # Make sure the expected keys are in the response - self.assertIn('pk', response.data) - self.assertIn('name', response.data) - self.assertIn('description', response.data) - self.assertIn('label', response.data) - self.assertIn('filters', response.data) - self.assertIn('enabled', response.data) - - filestr = StringIO( - '{% extends "label/label_base.html" %}{% block content %}
TEST LABEL{% endblock content %}' - ) - filestr.name = 'ExampleTemplate_Updated.html' - - # Check PATCH method - response = self.patch( - reverse(self.detail_url, kwargs={'pk': labels[0].pk}), - { - 'name': 'Changed name during test', - 'description': 'New version of the template', - 'label': filestr, - }, - format=None, - expected_code=200, - ) - - # Make sure the expected keys are in the response - self.assertIn('pk', response.data) - self.assertIn('name', response.data) - self.assertIn('description', response.data) - self.assertIn('label', response.data) - self.assertIn('filters', response.data) - self.assertIn('enabled', response.data) - - self.assertEqual(response.data['name'], 'Changed name during test') - self.assertEqual(response.data['description'], 'New version of the template') - - self.assertEqual(response.data['label'].count('ExampleTemplate_Updated'), 1) - - def test_delete(self): - """Test deleting, after other test are done.""" - if not self.detail_url: - return - - # Create an item first - self.test_create_endpoint() - - labels = self.model.objects.all() - n = len(labels) - # Make sure at least one label defined - self.assertGreaterEqual(n, 1) - - # Delete the last report - self.delete( - reverse(self.detail_url, kwargs={'pk': labels[n - 1].pk}), expected_code=204 - ) - - def test_print_label(self): - """Test printing a label.""" - if not self.print_url: - return - - # Create an item first - self.test_create_endpoint() - - labels = self.model.objects.all() - n = len(labels) - # Make sure at least one label defined - self.assertGreaterEqual(n, 1) - - url = reverse(self.print_url, kwargs={'pk': labels[0].pk}) - - # Try to print without providing a valid item - self.get(url, expected_code=400) - - # Try to print with an invalid item - self.get(url, {self.print_itemname: 9999}, expected_code=400) - - # Now print with a valid item - print(f'{self.print_itemmodel = }') - print(f'{self.print_itemmodel.objects.all() = }') - - item = self.print_itemmodel.objects.first() - self.assertIsNotNone(item) - - response = self.get(url, {self.print_itemname: item.pk}, expected_code=200) - - response_json = json.loads(response.content.decode('utf-8')) - - self.assertIn('file', response_json) - self.assertIn('success', response_json) - self.assertIn('message', response_json) - self.assertTrue(response_json['success']) - - def test_metadata_endpoint(self): - """Unit tests for the metadata field.""" - if not self.metadata_url: - return - - # Create an item first - self.test_create_endpoint() - - labels = self.model.objects.all() - n = len(labels) - # Make sure at least one label defined - self.assertGreaterEqual(n, 1) - - # Test getting metadata - response = self.get( - reverse(self.metadata_url, kwargs={'pk': labels[0].pk}), expected_code=200 - ) - - self.assertEqual(response.data, {'metadata': {}}) - - -class TestStockItemLabel(LabelTest): - """Unit testing class for the StockItemLabel model.""" - - model = label_models.StockItemLabel - - list_url = 'api-stockitem-label-list' - detail_url = 'api-stockitem-label-detail' - metadata_url = 'api-stockitem-label-metadata' - - print_url = 'api-stockitem-label-print' - print_itemname = 'item' - print_itemmodel = StockItem - - -class TestStockLocationLabel(LabelTest): - """Unit testing class for the StockLocationLabel model.""" - - model = label_models.StockLocationLabel - - list_url = 'api-stocklocation-label-list' - detail_url = 'api-stocklocation-label-detail' - metadata_url = 'api-stocklocation-label-metadata' - - print_url = 'api-stocklocation-label-print' - print_itemname = 'location' - print_itemmodel = StockLocation - - -class TestPartLabel(LabelTest): - """Unit testing class for the PartLabel model.""" - - model = label_models.PartLabel - - list_url = 'api-part-label-list' - detail_url = 'api-part-label-detail' - metadata_url = 'api-part-label-metadata' - - print_url = 'api-part-label-print' - print_itemname = 'part' - print_itemmodel = Part - - -class TestBuildLineLabel(LabelTest): - """Unit testing class for the BuildLine model.""" - - model = label_models.BuildLineLabel - - list_url = 'api-buildline-label-list' - detail_url = 'api-buildline-label-detail' - metadata_url = 'api-buildline-label-metadata' - - print_url = 'api-buildline-label-print' - print_itemname = 'line' - print_itemmodel = BuildLine diff --git a/src/backend/InvenTree/label/tests.py b/src/backend/InvenTree/label/tests.py deleted file mode 100644 index b4afce2216..0000000000 --- a/src/backend/InvenTree/label/tests.py +++ /dev/null @@ -1,166 +0,0 @@ -"""Tests for labels.""" - -import io -import json - -from django.apps import apps -from django.conf import settings -from django.core.exceptions import ValidationError -from django.core.files.base import ContentFile -from django.http import JsonResponse -from django.urls import reverse - -from common.models import InvenTreeSetting -from InvenTree.helpers import validateFilterString -from InvenTree.unit_test import InvenTreeAPITestCase -from label.models import LabelOutput -from part.models import Part -from plugin.registry import registry -from stock.models import StockItem - -from .models import PartLabel, StockItemLabel, StockLocationLabel - - -class LabelTest(InvenTreeAPITestCase): - """Unit test class for label models.""" - - fixtures = ['category', 'part', 'location', 'stock'] - - @classmethod - def setUpTestData(cls): - """Ensure that some label instances exist as part of init routine.""" - super().setUpTestData() - apps.get_app_config('label').create_defaults() - - def test_default_labels(self): - """Test that the default label templates are copied across.""" - labels = StockItemLabel.objects.all() - - self.assertTrue(labels.count() > 0) - - labels = StockLocationLabel.objects.all() - - self.assertTrue(labels.count() > 0) - - def test_default_files(self): - """Test that label files exist in the MEDIA directory.""" - - def test_subdir(ref_name): - item_dir = settings.MEDIA_ROOT.joinpath('label', 'inventree', ref_name) - self.assertTrue(len([item_dir.iterdir()]) > 0) - - test_subdir('stockitem') - test_subdir('stocklocation') - test_subdir('part') - - def test_filters(self): - """Test the label filters.""" - filter_string = 'part__pk=10' - - filters = validateFilterString(filter_string, model=StockItem) - - self.assertEqual(type(filters), dict) - - bad_filter_string = 'part_pk=10' - - with self.assertRaises(ValidationError): - validateFilterString(bad_filter_string, model=StockItem) - - def test_label_rendering(self): - """Test label rendering.""" - labels = PartLabel.objects.all() - part = Part.objects.first() - - for label in labels: - url = reverse('api-part-label-print', kwargs={'pk': label.pk}) - - # Check that label printing returns the correct response type - response = self.get(f'{url}?parts={part.pk}', expected_code=200) - self.assertIsInstance(response, JsonResponse) - data = json.loads(response.content) - - self.assertIn('message', data) - self.assertIn('file', data) - label_file = data['file'] - self.assertIn('/media/label/output/', label_file) - - def test_print_part_label(self): - """Actually 'print' a label, and ensure that the correct information is contained.""" - label_data = """ - {% load barcode %} - {% load report %} - - - - part: {{ part.pk }} - {{ part.name }} - - data: {{ qr_data|safe }} - - url: {{ qr_url|safe }} - - image: {% part_image part width=128 %} - - logo: {% logo_image %} - - """ - - buffer = io.StringIO() - buffer.write(label_data) - - template = ContentFile(buffer.getvalue(), 'label.html') - - # Construct a label template - label = PartLabel.objects.create( - name='test', description='Test label', enabled=True, label=template - ) - - # Ensure we are in "debug" mode (so the report is generated as HTML) - InvenTreeSetting.set_setting('REPORT_ENABLE', True, None) - - # Set the 'debug' setting for the plugin - plugin = registry.get_plugin('inventreelabel') - plugin.set_setting('DEBUG', True) - - # Print via the API (Note: will default to the builtin plugin if no plugin supplied) - url = reverse('api-part-label-print', kwargs={'pk': label.pk}) - - prt = Part.objects.first() - part_pk = prt.pk - part_name = prt.name - - response = self.get(f'{url}?parts={part_pk}', expected_code=200) - data = json.loads(response.content) - self.assertIn('file', data) - - # Find the generated file - output = LabelOutput.objects.last() - - # Open the file and read data - with open(output.label.path, 'r') as f: - content = f.read() - - # Test that each element has been rendered correctly - self.assertIn(f'part: {part_pk} - {part_name}', content) - self.assertIn(f'data: {{"part": {part_pk}}}', content) - if settings.ENABLE_CLASSIC_FRONTEND: - self.assertIn(f'http://testserver/part/{part_pk}/', content) - - # Check that a encoded image has been generated - self.assertIn('data:image/png;charset=utf-8;base64,', content) - - def test_metadata(self): - """Unit tests for the metadata field.""" - for model in [StockItemLabel, StockLocationLabel, PartLabel]: - p = model.objects.first() - - self.assertIsNone(p.get_metadata('test')) - self.assertEqual(p.get_metadata('test', backup_value=123), 123) - - # Test update via the set_metadata() method - p.set_metadata('test', 3) - self.assertEqual(p.get_metadata('test'), 3) - - for k in ['apple', 'banana', 'carrot', 'carrot', 'banana']: - p.set_metadata(k, k) - - self.assertEqual(len(p.metadata.keys()), 4) diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po index 9cb1f78708..f8f3bcc66a 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-04-20 13:19+0000\n" -"PO-Revision-Date: 2024-04-21 04:19\n" +"POT-Creation-Date: 2024-06-19 04:39+0000\n" +"PO-Revision-Date: 2024-06-19 04:49\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -17,11 +17,11 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 216\n" -#: InvenTree/api.py:255 +#: InvenTree/api.py:272 msgid "API endpoint not found" msgstr "Не е намерена крайна точка на API" -#: InvenTree/api.py:519 +#: InvenTree/api.py:520 msgid "User does not have permission to view this model" msgstr "Потребителя няма нужното разрешение, за да вижда този модел" @@ -52,30 +52,30 @@ msgstr "Зададено е недопустимо количество ({exc})" msgid "Error details can be found in the admin panel" msgstr "Подробности за грешката могат да се намерят в администраторския панел" -#: InvenTree/fields.py:139 +#: InvenTree/fields.py:136 msgid "Enter date" msgstr "Въведи дата" -#: InvenTree/fields.py:208 InvenTree/models.py:1021 build/serializers.py:438 -#: build/serializers.py:516 build/templates/build/sidebar.html:21 -#: company/models.py:847 company/templates/company/sidebar.html:37 -#: order/models.py:1283 order/templates/order/po_sidebar.html:11 +#: InvenTree/fields.py:205 InvenTree/models.py:918 build/serializers.py:452 +#: build/serializers.py:530 build/templates/build/sidebar.html:21 +#: company/models.py:817 company/templates/company/sidebar.html:37 +#: order/models.py:1296 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:3175 part/templates/part/part_sidebar.html:63 -#: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:226 stock/models.py:2332 stock/models.py:2449 -#: stock/serializers.py:501 stock/serializers.py:659 stock/serializers.py:755 -#: stock/serializers.py:805 stock/serializers.py:1114 stock/serializers.py:1203 -#: stock/serializers.py:1368 stock/templates/stock/stock_sidebar.html:25 +#: part/models.py:3183 part/templates/part/part_sidebar.html:63 +#: report/templates/report/inventree_build_order_report.html:172 +#: stock/admin.py:230 stock/models.py:2309 stock/models.py:2431 +#: stock/serializers.py:632 stock/serializers.py:790 stock/serializers.py:886 +#: stock/serializers.py:936 stock/serializers.py:1230 stock/serializers.py:1319 +#: stock/serializers.py:1484 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:1080 -#: templates/js/translated/purchase_order.js:2201 -#: templates/js/translated/return_order.js:776 -#: templates/js/translated/sales_order.js:1067 -#: templates/js/translated/sales_order.js:1982 -#: templates/js/translated/stock.js:1533 templates/js/translated/stock.js:2427 +#: templates/js/translated/part.js:1081 +#: templates/js/translated/purchase_order.js:2200 +#: templates/js/translated/return_order.js:775 +#: templates/js/translated/sales_order.js:1103 +#: templates/js/translated/sales_order.js:2018 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:2428 msgid "Notes" msgstr "Бележки" @@ -120,19 +120,19 @@ msgstr "Потвърждение на електронната поща" msgid "You must type the same email each time." msgstr "Трябва ла въведете една и съща електронна поща." -#: InvenTree/forms.py:253 InvenTree/forms.py:261 +#: InvenTree/forms.py:248 InvenTree/forms.py:256 msgid "The provided primary email address is not valid." msgstr "Въведената основна електронна поща е невалидна." -#: InvenTree/forms.py:268 +#: InvenTree/forms.py:263 msgid "The provided email domain is not approved." msgstr "Въведеният домейн на електронната поща не е утвърден." -#: InvenTree/forms.py:395 +#: InvenTree/forms.py:390 msgid "Registration is disabled." msgstr "Регистрацията е деактивирана." -#: InvenTree/helpers.py:525 order/models.py:541 order/models.py:743 +#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:764 msgid "Invalid quantity provided" msgstr "Въведена е недопустима стойност" @@ -171,35 +171,35 @@ msgstr "" msgid "Remove HTML tags from this value" msgstr "Премахнете HTML маркерите от тази стойност" -#: InvenTree/helpers_model.py:150 +#: InvenTree/helpers_model.py:140 msgid "Connection error" msgstr "Грешка при съединението" -#: InvenTree/helpers_model.py:155 InvenTree/helpers_model.py:162 +#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 msgid "Server responded with invalid status code" msgstr "Сървърът отговари с невалиден статусен код" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:148 msgid "Exception occurred" msgstr "Възникна изключение" -#: InvenTree/helpers_model.py:168 +#: InvenTree/helpers_model.py:158 msgid "Server responded with invalid Content-Length value" msgstr "Сървърът отговори с невалидна стойност за дължината на съдържанието (Content-Length)" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:161 msgid "Image size is too large" msgstr "Размерът на изображението е твърде голям" -#: InvenTree/helpers_model.py:183 +#: InvenTree/helpers_model.py:173 msgid "Image download exceeded maximum size" msgstr "Сваляното на изображение превиши максималния размер" -#: InvenTree/helpers_model.py:188 +#: InvenTree/helpers_model.py:178 msgid "Remote server returned empty response" msgstr "Отдалеченият сървър върна празен отговор" -#: InvenTree/helpers_model.py:196 +#: InvenTree/helpers_model.py:186 msgid "Supplied URL is not a valid image file" msgstr "" @@ -296,42 +296,50 @@ msgid "Portuguese (Brazilian)" msgstr "Португалски (Бразилия)" #: InvenTree/locales.py:41 +msgid "Romanian" +msgstr "" + +#: InvenTree/locales.py:42 msgid "Russian" msgstr "Руски" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:43 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:44 msgid "Slovenian" msgstr "Словенски" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:45 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:46 msgid "Swedish" msgstr "Шведски" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:47 msgid "Thai" msgstr "Тайландски" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:48 msgid "Turkish" msgstr "Турски" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:49 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:50 msgid "Vietnamese" msgstr "Виетнамски" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:51 msgid "Chinese (Simplified)" msgstr "Китайски (опростен)" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:52 msgid "Chinese (Traditional)" msgstr "Китайски (традиционен)" @@ -340,156 +348,68 @@ msgstr "Китайски (традиционен)" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:133 +#: InvenTree/magic_login.py:38 company/models.py:136 #: company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 msgid "Email" msgstr "" -#: InvenTree/models.py:107 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:162 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:168 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:169 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:399 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:406 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:412 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:423 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:431 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:462 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:536 -msgid "Missing file" -msgstr "" - -#: InvenTree/models.py:537 -msgid "Missing external link" -msgstr "" - -#: InvenTree/models.py:558 stock/models.py:2444 -#: templates/js/translated/attachment.js:119 -#: templates/js/translated/attachment.js:326 -msgid "Attachment" -msgstr "" - -#: InvenTree/models.py:559 -msgid "Select file to attach" -msgstr "" - -#: InvenTree/models.py:567 common/models.py:3018 company/models.py:146 -#: company/models.py:457 company/models.py:514 company/models.py:830 -#: order/models.py:291 order/models.py:1288 order/models.py:1702 -#: part/admin.py:55 part/models.py:919 -#: part/templates/part/part_scheduling.html:11 -#: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:225 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2456 -#: templates/js/translated/purchase_order.js:2041 -#: templates/js/translated/purchase_order.js:2205 -#: templates/js/translated/return_order.js:780 -#: templates/js/translated/sales_order.js:1056 -#: templates/js/translated/sales_order.js:1987 -msgid "Link" -msgstr "" - -#: InvenTree/models.py:568 build/models.py:315 part/models.py:920 -#: stock/models.py:819 -msgid "Link to external URL" -msgstr "" - -#: InvenTree/models.py:574 templates/js/translated/attachment.js:120 -#: templates/js/translated/attachment.js:341 -msgid "Comment" -msgstr "" - -#: InvenTree/models.py:575 -msgid "File comment" -msgstr "" - -#: InvenTree/models.py:583 InvenTree/models.py:584 common/models.py:2494 -#: common/models.py:2495 common/models.py:2719 common/models.py:2720 -#: common/models.py:2965 common/models.py:2966 part/models.py:3185 -#: part/models.py:3272 part/models.py:3365 part/models.py:3393 -#: plugin/models.py:250 plugin/models.py:251 -#: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3036 users/models.py:111 -msgid "User" -msgstr "Потребител" - -#: InvenTree/models.py:588 -msgid "upload date" -msgstr "" - -#: InvenTree/models.py:610 -msgid "Filename must not be empty" -msgstr "" - -#: InvenTree/models.py:621 -msgid "Invalid attachment directory" -msgstr "" - -#: InvenTree/models.py:651 -#, python-brace-format -msgid "Filename contains illegal character '{c}'" -msgstr "" - -#: InvenTree/models.py:654 -msgid "Filename missing extension" -msgstr "" - -#: InvenTree/models.py:663 -msgid "Attachment with this filename already exists" -msgstr "" - -#: InvenTree/models.py:670 -msgid "Error renaming file" -msgstr "" - -#: InvenTree/models.py:846 +#: InvenTree/models.py:719 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:863 +#: InvenTree/models.py:736 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:893 common/models.py:2706 common/models.py:3104 -#: common/serializers.py:370 company/models.py:613 label/models.py:120 -#: machine/models.py:24 part/models.py:855 part/models.py:3616 -#: plugin/models.py:41 report/models.py:176 stock/models.py:76 +#: InvenTree/models.py:766 common/models.py:2623 common/models.py:3036 +#: common/serializers.py:408 company/models.py:580 machine/models.py:24 +#: part/models.py:891 part/models.py:3639 plugin/models.py:51 +#: report/models.py:150 stock/models.py:73 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 -#: templates/InvenTree/settings/plugin.html:81 +#: 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 @@ -497,192 +417,188 @@ msgstr "" #: 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:1186 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1610 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1187 +#: templates/js/translated/part.js:1475 templates/js/translated/part.js:1611 #: templates/js/translated/part.js:2749 templates/js/translated/stock.js:2716 msgid "Name" msgstr "" -#: InvenTree/models.py:899 build/models.py:188 -#: build/templates/build/detail.html:24 common/models.py:136 -#: company/models.py:522 company/models.py:838 +#: InvenTree/models.py:772 build/models.py:220 +#: build/templates/build/detail.html:24 common/models.py:138 +#: company/models.py:509 company/models.py:808 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:127 -#: order/models.py:277 order/models.py:1316 part/admin.py:303 part/admin.py:414 -#: part/models.py:878 part/models.py:3631 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 order/models.py:289 +#: order/models.py:1329 part/admin.py:305 part/admin.py:408 part/models.py:914 +#: part/models.py:3654 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:189 -#: report/models.py:655 report/models.py:729 -#: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:55 stock/models.py:82 stock/templates/stock/location.html:125 +#: 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:79 stock/templates/stock/location.html:125 #: 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/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2137 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2139 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:1238 -#: templates/js/translated/part.js:1483 templates/js/translated/part.js:1621 -#: templates/js/translated/part.js:1958 templates/js/translated/part.js:2355 -#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2896 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1239 +#: templates/js/translated/part.js:1484 templates/js/translated/part.js:1622 +#: templates/js/translated/part.js:1959 templates/js/translated/part.js:2355 +#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2897 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1707 -#: templates/js/translated/purchase_order.js:1850 -#: templates/js/translated/purchase_order.js:2023 -#: templates/js/translated/return_order.js:314 -#: templates/js/translated/sales_order.js:802 -#: templates/js/translated/sales_order.js:1812 -#: templates/js/translated/stock.js:1512 templates/js/translated/stock.js:2057 +#: templates/js/translated/purchase_order.js:1706 +#: templates/js/translated/purchase_order.js:1849 +#: templates/js/translated/purchase_order.js:2022 +#: 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:1515 templates/js/translated/stock.js:2058 #: templates/js/translated/stock.js:2748 templates/js/translated/stock.js:2831 msgid "Description" msgstr "" -#: InvenTree/models.py:900 stock/models.py:83 +#: InvenTree/models.py:773 stock/models.py:80 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:909 +#: InvenTree/models.py:782 msgid "parent" msgstr "родител" -#: InvenTree/models.py:915 templates/js/translated/part.js:2794 +#: InvenTree/models.py:788 templates/js/translated/part.js:2794 #: templates/js/translated/stock.js:2757 msgid "Path" msgstr "" -#: InvenTree/models.py:1021 +#: InvenTree/models.py:918 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1050 +#: InvenTree/models.py:947 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:1051 +#: InvenTree/models.py:948 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1057 +#: InvenTree/models.py:954 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1058 +#: InvenTree/models.py:955 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1111 +#: InvenTree/models.py:1008 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1154 +#: InvenTree/models.py:1051 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1155 +#: InvenTree/models.py:1052 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:62 part/models.py:4169 +#: InvenTree/serializers.py:63 part/models.py:4192 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:99 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:2993 +#: InvenTree/serializers.py:100 company/models.py:186 +#: company/templates/company/company_base.html:112 part/models.py:3001 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:102 +#: InvenTree/serializers.py:103 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:442 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:453 +#: InvenTree/serializers.py:454 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:472 +#: InvenTree/serializers.py:473 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:475 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:481 +#: InvenTree/serializers.py:482 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:542 -msgid "Filename" -msgstr "" - -#: InvenTree/serializers.py:576 +#: InvenTree/serializers.py:540 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:596 +#: InvenTree/serializers.py:560 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:597 +#: InvenTree/serializers.py:561 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:614 +#: InvenTree/serializers.py:578 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:620 +#: InvenTree/serializers.py:584 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:641 +#: InvenTree/serializers.py:605 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:644 +#: InvenTree/serializers.py:608 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:757 +#: InvenTree/serializers.py:721 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:760 +#: InvenTree/serializers.py:724 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:827 +#: InvenTree/serializers.py:791 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:836 +#: InvenTree/serializers.py:800 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:859 +#: InvenTree/serializers.py:840 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:860 +#: InvenTree/serializers.py:841 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:878 +#: InvenTree/serializers.py:859 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1161 +#: InvenTree/status.py:66 part/serializers.py:1166 msgid "Background worker check failed" msgstr "" @@ -694,223 +610,27 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 -#: InvenTree/status_codes.py:182 generic/states/tests.py:17 -#: templates/js/translated/table_filters.js:598 -msgid "Pending" -msgstr "" - -#: InvenTree/status_codes.py:13 generic/states/tests.py:18 -msgid "Placed" -msgstr "" - -#: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:169 generic/states/tests.py:19 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:161 -msgid "Complete" -msgstr "" - -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 -msgid "Cancelled" -msgstr "" - -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 -#: InvenTree/status_codes.py:67 -msgid "Lost" -msgstr "Изгубен" - -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 -#: InvenTree/status_codes.py:73 -msgid "Returned" -msgstr "Върнат" - -#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 -msgid "In Progress" -msgstr "Изпълнява се" - -#: InvenTree/status_codes.py:43 order/models.py:1564 -#: templates/js/translated/sales_order.js:1523 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1957 -msgid "Shipped" -msgstr "Изпратено" - -#: InvenTree/status_codes.py:62 -msgid "OK" -msgstr "Да" - -#: InvenTree/status_codes.py:63 -msgid "Attention needed" -msgstr "" - -#: InvenTree/status_codes.py:64 -msgid "Damaged" -msgstr "" - -#: InvenTree/status_codes.py:65 -msgid "Destroyed" -msgstr "" - -#: InvenTree/status_codes.py:66 -msgid "Rejected" -msgstr "" - -#: InvenTree/status_codes.py:70 -msgid "Quarantined" -msgstr "" - -#: InvenTree/status_codes.py:91 -msgid "Legacy stock tracking entry" -msgstr "" - -#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544 -msgid "Stock item created" -msgstr "" - -#: InvenTree/status_codes.py:96 -msgid "Edited stock item" -msgstr "" - -#: InvenTree/status_codes.py:97 -msgid "Assigned serial number" -msgstr "" - -#: InvenTree/status_codes.py:100 -msgid "Stock counted" -msgstr "Наличността е преброена" - -#: InvenTree/status_codes.py:101 -msgid "Stock manually added" -msgstr "" - -#: InvenTree/status_codes.py:102 -msgid "Stock manually removed" -msgstr "" - -#: InvenTree/status_codes.py:105 -msgid "Location changed" -msgstr "" - -#: InvenTree/status_codes.py:106 -msgid "Stock updated" -msgstr "" - -#: InvenTree/status_codes.py:109 -msgid "Installed into assembly" -msgstr "" - -#: InvenTree/status_codes.py:110 -msgid "Removed from assembly" -msgstr "" - -#: InvenTree/status_codes.py:112 -msgid "Installed component item" -msgstr "" - -#: InvenTree/status_codes.py:113 -msgid "Removed component item" -msgstr "" - -#: InvenTree/status_codes.py:116 -msgid "Split from parent item" -msgstr "" - -#: InvenTree/status_codes.py:117 -msgid "Split child item" -msgstr "" - -#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1855 -msgid "Merged stock items" -msgstr "" - -#: InvenTree/status_codes.py:123 -msgid "Converted to variant" -msgstr "" - -#: InvenTree/status_codes.py:126 -msgid "Build order output created" -msgstr "" - -#: InvenTree/status_codes.py:127 -msgid "Build order output completed" -msgstr "" - -#: InvenTree/status_codes.py:128 -msgid "Build order output rejected" -msgstr "" - -#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1761 -msgid "Consumed by build order" -msgstr "" - -#: InvenTree/status_codes.py:132 -msgid "Shipped against Sales Order" -msgstr "" - -#: InvenTree/status_codes.py:135 -msgid "Received against Purchase Order" -msgstr "" - -#: InvenTree/status_codes.py:138 -msgid "Returned against Return Order" -msgstr "" - -#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375 -msgid "Sent to customer" -msgstr "" - -#: InvenTree/status_codes.py:142 -msgid "Returned from customer" -msgstr "" - -#: InvenTree/status_codes.py:149 -msgid "Production" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Return" -msgstr "" - -#: InvenTree/status_codes.py:188 -msgid "Repair" -msgstr "" - -#: InvenTree/status_codes.py:191 -msgid "Replace" -msgstr "" - -#: InvenTree/status_codes.py:194 -msgid "Refund" -msgstr "" - -#: InvenTree/status_codes.py:197 -msgid "Reject" -msgstr "" - -#: InvenTree/templatetags/inventree_extras.py:183 +#: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:31 InvenTree/validators.py:33 +#: InvenTree/validators.py:32 InvenTree/validators.py:34 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:39 +#: InvenTree/validators.py:40 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:121 InvenTree/validators.py:137 +#: InvenTree/validators.py:118 InvenTree/validators.py:134 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:139 +#: InvenTree/validators.py:136 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:145 +#: InvenTree/validators.py:142 msgid "Invalid value for overage" msgstr "" @@ -938,62 +658,62 @@ msgstr "" msgid "About InvenTree" msgstr "" -#: build/api.py:238 +#: build/api.py:255 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:282 part/models.py:4047 templates/js/translated/bom.js:997 -#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2521 +#: build/api.py:299 part/models.py:4070 templates/js/translated/bom.js:997 +#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:283 part/models.py:4041 part/templates/part/upload_bom.html:58 +#: build/api.py:300 part/models.py:4064 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 -#: templates/js/translated/build.js:2530 +#: templates/js/translated/build.js:2529 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 msgid "Optional" msgstr "" -#: build/api.py:284 templates/js/translated/table_filters.js:408 +#: build/api.py:301 templates/js/translated/table_filters.js:408 #: templates/js/translated/table_filters.js:579 msgid "Tracked" msgstr "" -#: build/api.py:286 part/admin.py:144 templates/js/translated/build.js:1741 -#: templates/js/translated/build.js:2630 -#: templates/js/translated/sales_order.js:1929 +#: build/api.py:303 part/admin.py:144 templates/js/translated/build.js:1744 +#: templates/js/translated/build.js:2629 +#: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:294 company/models.py:902 company/serializers.py:383 +#: build/api.py:311 company/models.py:872 company/serializers.py:359 #: 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:2562 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2561 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:228 -#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 -#: templates/js/translated/part.js:699 +#: templates/js/translated/model_renderers.js:234 +#: templates/js/translated/part.js:693 templates/js/translated/part.js:695 +#: templates/js/translated/part.js:700 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" msgstr "" -#: build/models.py:74 build/templates/build/build_base.html:9 +#: build/models.py:85 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 -#: report/templates/report/inventree_build_order_base.html:105 -#: templates/email/build_order_completed.html:16 +#: report/templates/report/inventree_build_order_report.html:105 +#: stock/serializers.py:82 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 #: templates/js/translated/build.js:972 templates/js/translated/stock.js:2892 msgid "Build Order" msgstr "" -#: build/models.py:75 build/templates/build/build_base.html:13 +#: build/models.py:86 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 @@ -1004,708 +724,756 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:116 +#: build/models.py:133 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:127 order/models.py:239 +#: build/models.py:144 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:133 +#: build/models.py:150 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:179 +#: build/models.py:211 msgid "Build Order Reference" msgstr "" -#: build/models.py:180 order/models.py:442 order/models.py:898 -#: order/models.py:1276 order/models.py:1996 part/admin.py:417 -#: part/models.py:4062 part/templates/part/upload_bom.html:54 +#: build/models.py:212 order/models.py:463 order/models.py:926 +#: order/models.py:1289 order/models.py:2020 part/admin.py:411 +#: part/models.py:4085 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 -#: report/templates/report/inventree_po_report_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:26 -#: report/templates/report/inventree_so_report_base.html:28 +#: 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:2513 templates/js/translated/order.js:291 +#: templates/js/translated/build.js:2512 templates/js/translated/order.js:291 #: templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2066 -#: templates/js/translated/return_order.js:729 -#: templates/js/translated/sales_order.js:1818 +#: templates/js/translated/purchase_order.js:2065 +#: templates/js/translated/return_order.js:728 +#: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:191 +#: build/models.py:223 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:199 build/templates/build/build_base.html:183 +#: build/models.py:231 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:200 +#: build/models.py:232 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:205 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1056 order/api.py:817 -#: order/models.py:1401 order/models.py:1544 order/models.py:1545 -#: part/api.py:1547 part/api.py:1841 part/models.py:390 part/models.py:3004 -#: part/models.py:3148 part/models.py:3292 part/models.py:3315 -#: part/models.py:3336 part/models.py:3358 part/models.py:3468 -#: part/models.py:3764 part/models.py:3920 part/models.py:4013 -#: part/models.py:4374 part/serializers.py:1107 part/serializers.py:1713 +#: build/models.py:237 build/templates/build/build_base.html:97 +#: build/templates/build/detail.html:29 company/models.py:1026 order/api.py:805 +#: order/models.py:1414 order/models.py:1559 order/models.py:1560 +#: part/api.py:1478 part/api.py:1772 part/models.py:395 part/models.py:3012 +#: part/models.py:3156 part/models.py:3303 part/models.py:3324 +#: part/models.py:3346 part/models.py:3477 part/models.py:3787 +#: part/models.py:3943 part/models.py:4036 part/models.py:4395 +#: part/serializers.py:1112 part/serializers.py:1718 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_base.html:109 -#: report/templates/report/inventree_po_report_base.html:27 -#: report/templates/report/inventree_return_order_report_base.html:24 -#: report/templates/report/inventree_slr_report.html:102 -#: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:267 stock/serializers.py:689 -#: templates/InvenTree/search.html:82 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:109 stock/serializers.py:157 stock/serializers.py:423 +#: stock/serializers.py:820 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:546 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1309 templates/js/translated/build.js:1740 -#: templates/js/translated/build.js:2160 templates/js/translated/build.js:2333 +#: templates/js/translated/build.js:1312 templates/js/translated/build.js:1743 +#: templates/js/translated/build.js:2162 templates/js/translated/build.js:2335 #: 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:1943 templates/js/translated/part.js:2015 +#: templates/js/translated/part.js:1944 templates/js/translated/part.js:2016 #: templates/js/translated/part.js:2324 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1304 -#: templates/js/translated/purchase_order.js:1849 -#: templates/js/translated/purchase_order.js:2008 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:710 +#: templates/js/translated/purchase_order.js:1848 +#: templates/js/translated/purchase_order.js:2007 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:709 #: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1197 -#: templates/js/translated/sales_order.js:1598 -#: templates/js/translated/sales_order.js:1796 +#: 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:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1996 +#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1997 #: templates/js/translated/stock.js:2857 templates/js/translated/stock.js:3090 #: templates/js/translated/stock.js:3236 msgid "Part" msgstr "Част" -#: build/models.py:213 +#: build/models.py:245 msgid "Select part to build" msgstr "" -#: build/models.py:218 +#: build/models.py:250 msgid "Sales Order Reference" msgstr "" -#: build/models.py:222 +#: build/models.py:254 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:227 build/serializers.py:964 -#: templates/js/translated/build.js:1728 -#: templates/js/translated/sales_order.js:1185 +#: build/models.py:259 build/serializers.py:999 +#: templates/js/translated/build.js:1731 +#: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:231 +#: build/models.py:263 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:236 +#: build/models.py:268 msgid "Destination Location" msgstr "" -#: build/models.py:240 +#: build/models.py:272 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:244 +#: build/models.py:276 msgid "Build Quantity" msgstr "" -#: build/models.py:247 +#: build/models.py:279 msgid "Number of stock items to build" msgstr "" -#: build/models.py:251 +#: build/models.py:283 msgid "Completed items" msgstr "" -#: build/models.py:253 +#: build/models.py:285 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 +#: build/models.py:289 msgid "Build Status" msgstr "" -#: build/models.py:261 +#: build/models.py:293 msgid "Build status code" msgstr "" -#: build/models.py:270 build/serializers.py:280 order/serializers.py:577 -#: stock/models.py:823 stock/serializers.py:1333 +#: build/models.py:302 build/serializers.py:286 order/serializers.py:580 +#: stock/models.py:838 stock/serializers.py:74 stock/serializers.py:1449 #: templates/js/translated/purchase_order.js:1129 msgid "Batch Code" msgstr "" -#: build/models.py:274 build/serializers.py:281 +#: build/models.py:306 build/serializers.py:287 msgid "Batch code for this build output" msgstr "" -#: build/models.py:277 order/models.py:304 part/models.py:1079 -#: part/templates/part/part_base.html:310 -#: templates/js/translated/return_order.js:339 -#: templates/js/translated/sales_order.js:827 +#: build/models.py:309 order/models.py:316 order/serializers.py:119 +#: part/models.py:1115 part/templates/part/part_base.html:310 +#: templates/js/translated/return_order.js:338 +#: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:281 +#: build/models.py:313 msgid "Target completion date" msgstr "" -#: build/models.py:282 +#: build/models.py:314 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:285 order/models.py:500 order/models.py:2041 -#: templates/js/translated/build.js:2245 +#: build/models.py:317 order/models.py:521 order/models.py:2065 +#: templates/js/translated/build.js:2247 msgid "Completion Date" msgstr "" -#: build/models.py:291 +#: build/models.py:323 msgid "completed by" msgstr "" -#: build/models.py:299 templates/js/translated/build.js:2205 +#: build/models.py:331 templates/js/translated/build.js:2207 msgid "Issued by" msgstr "" -#: build/models.py:300 +#: build/models.py:332 msgid "User who issued this build order" msgstr "" -#: build/models.py:308 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:145 -#: order/models.py:322 order/templates/order/order_base.html:217 +#: build/models.py:340 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:147 +#: 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:228 part/models.py:1096 +#: order/templates/order/sales_order_base.html:232 part/models.py:1132 #: part/templates/part/part_base.html:390 -#: report/templates/report/inventree_build_order_base.html:158 +#: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2217 -#: templates/js/translated/purchase_order.js:1764 -#: templates/js/translated/return_order.js:359 +#: templates/js/translated/build.js:2219 +#: templates/js/translated/purchase_order.js:1763 +#: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:309 +#: build/models.py:341 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:314 build/templates/build/detail.html:108 +#: build/models.py:346 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:180 -#: part/templates/part/part_base.html:383 stock/models.py:819 +#: order/templates/order/sales_order_base.html:184 +#: part/templates/part/part_base.html:383 stock/models.py:834 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:319 +#: build/models.py:347 common/models.py:3178 part/models.py:956 +#: stock/models.py:834 +msgid "Link to external URL" +msgstr "" + +#: build/models.py:351 msgid "Build Priority" msgstr "" -#: build/models.py:322 +#: build/models.py:354 msgid "Priority of this build order" msgstr "" -#: build/models.py:329 common/models.py:129 order/admin.py:18 -#: order/models.py:286 templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2142 -#: templates/js/translated/purchase_order.js:1711 -#: templates/js/translated/return_order.js:318 -#: templates/js/translated/sales_order.js:806 +#: build/models.py:361 common/models.py:131 order/admin.py:18 +#: order/models.py:298 templates/InvenTree/settings/settings_staff_js.html:146 +#: templates/js/translated/build.js:2144 +#: templates/js/translated/purchase_order.js:1710 +#: templates/js/translated/return_order.js:317 +#: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:330 +#: build/models.py:362 msgid "Project code for this build order" msgstr "" -#: build/models.py:581 +#: build/models.py:595 build/models.py:660 +msgid "Failed to offload task to complete build allocations" +msgstr "" + +#: build/models.py:617 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:587 +#: build/models.py:623 msgid "A build order has been completed" msgstr "" -#: build/models.py:805 build/models.py:880 +#: build/models.py:849 build/models.py:934 msgid "No build output specified" msgstr "" -#: build/models.py:808 +#: build/models.py:852 msgid "Build output is already completed" msgstr "" -#: build/models.py:811 +#: build/models.py:855 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:884 build/serializers.py:223 build/serializers.py:262 -#: build/serializers.py:831 order/models.py:538 order/serializers.py:429 -#: order/serializers.py:572 part/serializers.py:1471 part/serializers.py:1871 -#: stock/models.py:662 stock/models.py:1474 stock/serializers.py:472 +#: build/models.py:938 build/serializers.py:219 build/serializers.py:268 +#: build/serializers.py:866 order/models.py:559 order/serializers.py:432 +#: order/serializers.py:575 part/serializers.py:1476 part/serializers.py:1876 +#: stock/models.py:677 stock/models.py:1495 stock/serializers.py:603 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:889 build/serializers.py:228 +#: build/models.py:943 build/serializers.py:224 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:946 build/serializers.py:533 +#: build/models.py:1003 build/serializers.py:547 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1308 +#: build/models.py:1344 +msgid "Build Order Line Item" +msgstr "" + +#: build/models.py:1369 msgid "Build object" msgstr "" -#: build/models.py:1322 build/models.py:1578 build/serializers.py:210 -#: build/serializers.py:247 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2516 -#: order/models.py:1259 order/models.py:1916 order/serializers.py:1335 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:416 -#: part/forms.py:48 part/models.py:3162 part/models.py:4035 +#: build/models.py:1383 build/models.py:1639 build/serializers.py:206 +#: build/serializers.py:253 build/templates/build/build_base.html:102 +#: build/templates/build/detail.html:34 common/models.py:2509 +#: order/models.py:1272 order/models.py:1931 order/serializers.py:1327 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 +#: part/forms.py:48 part/models.py:3170 part/models.py:4058 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 -#: report/templates/report/inventree_build_order_base.html:113 -#: report/templates/report/inventree_po_report_base.html:29 -#: report/templates/report/inventree_slr_report.html:104 -#: report/templates/report/inventree_so_report_base.html:29 -#: report/templates/report/inventree_test_report_base.html:90 -#: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:160 stock/serializers.py:463 +#: report/templates/report/inventree_build_order_report.html:113 +#: report/templates/report/inventree_purchase_order_report.html:29 +#: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_stock_location_report.html:104 +#: report/templates/report/inventree_test_report.html:90 +#: report/templates/report/inventree_test_report.html:170 stock/admin.py:159 +#: stock/serializers.py:125 stock/serializers.py:165 stock/serializers.py:594 #: 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:548 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:521 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1366 -#: templates/js/translated/build.js:1743 templates/js/translated/build.js:2355 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1369 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2357 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:961 -#: templates/js/translated/part.js:1811 templates/js/translated/part.js:3341 +#: templates/js/translated/model_renderers.js:236 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1812 templates/js/translated/part.js:3342 #: 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:1853 -#: templates/js/translated/purchase_order.js:2072 +#: templates/js/translated/purchase_order.js:1852 +#: templates/js/translated/purchase_order.js:2071 #: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1199 -#: templates/js/translated/sales_order.js:1518 -#: templates/js/translated/sales_order.js:1608 -#: templates/js/translated/sales_order.js:1698 -#: templates/js/translated/sales_order.js:1824 +#: 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:564 templates/js/translated/stock.js:702 #: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3021 #: templates/js/translated/stock.js:3104 msgid "Quantity" msgstr "" -#: build/models.py:1323 +#: build/models.py:1384 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1403 +#: build/models.py:1464 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1412 +#: build/models.py:1473 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1422 order/models.py:1867 +#: build/models.py:1483 order/models.py:1882 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1428 order/models.py:1870 +#: build/models.py:1489 order/models.py:1885 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1434 +#: build/models.py:1495 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1493 +#: build/models.py:1554 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1565 build/serializers.py:811 order/serializers.py:1179 -#: order/serializers.py:1200 stock/serializers.py:566 stock/serializers.py:1052 -#: stock/serializers.py:1164 stock/templates/stock/item_base.html:10 +#: build/models.py:1626 build/serializers.py:846 order/serializers.py:1171 +#: order/serializers.py:1192 stock/models.py:358 stock/serializers.py:91 +#: stock/serializers.py:697 stock/serializers.py:1168 stock/serializers.py:1280 +#: 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:1742 +#: templates/js/translated/build.js:1745 #: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1198 -#: templates/js/translated/sales_order.js:1499 -#: templates/js/translated/sales_order.js:1504 -#: templates/js/translated/sales_order.js:1605 -#: templates/js/translated/sales_order.js:1692 +#: 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:677 templates/js/translated/stock.js:843 #: templates/js/translated/stock.js:2977 msgid "Stock Item" msgstr "" -#: build/models.py:1566 +#: build/models.py:1627 msgid "Source stock item" msgstr "" -#: build/models.py:1579 +#: build/models.py:1640 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1587 +#: build/models.py:1648 msgid "Install into" msgstr "" -#: build/models.py:1588 +#: build/models.py:1649 msgid "Destination stock item" msgstr "" -#: build/serializers.py:160 build/serializers.py:840 -#: templates/js/translated/build.js:1319 +#: build/serializers.py:156 build/serializers.py:875 +#: templates/js/translated/build.js:1322 msgid "Build Output" msgstr "" -#: build/serializers.py:172 +#: build/serializers.py:168 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:176 +#: build/serializers.py:172 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:180 +#: build/serializers.py:176 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:191 +#: build/serializers.py:187 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:211 build/serializers.py:248 +#: build/serializers.py:207 build/serializers.py:254 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:269 +#: build/serializers.py:275 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:272 +#: build/serializers.py:278 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:287 order/serializers.py:585 order/serializers.py:1339 -#: stock/serializers.py:483 templates/js/translated/purchase_order.js:1153 +#: build/serializers.py:293 order/serializers.py:588 order/serializers.py:1331 +#: stock/serializers.py:614 templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:294 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:301 -msgid "Auto Allocate Serial Numbers" -msgstr "" - -#: build/serializers.py:302 -msgid "Automatically allocate required items with matching serial numbers" -msgstr "" - -#: build/serializers.py:337 stock/api.py:995 -msgid "The following serial numbers already exist or are invalid" -msgstr "" - -#: build/serializers.py:388 build/serializers.py:450 build/serializers.py:539 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:426 build/serializers.py:498 order/serializers.py:561 -#: order/serializers.py:669 order/serializers.py:1675 part/serializers.py:1127 -#: stock/serializers.py:494 stock/serializers.py:654 stock/serializers.py:750 -#: stock/serializers.py:1196 stock/serializers.py:1452 -#: stock/templates/stock/item_base.html:394 +#: build/serializers.py:299 build/serializers.py:440 build/serializers.py:512 +#: order/serializers.py:564 order/serializers.py:672 order/serializers.py:1656 +#: part/serializers.py:1132 stock/serializers.py:100 stock/serializers.py:625 +#: stock/serializers.py:785 stock/serializers.py:881 stock/serializers.py:1312 +#: stock/serializers.py:1568 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 -#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:999 -#: templates/js/translated/build.js:2370 +#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:1001 +#: templates/js/translated/build.js:2372 #: templates/js/translated/purchase_order.js:1178 #: templates/js/translated/purchase_order.js:1268 -#: templates/js/translated/sales_order.js:1511 -#: templates/js/translated/sales_order.js:1619 -#: templates/js/translated/sales_order.js:1627 -#: templates/js/translated/sales_order.js:1706 +#: 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:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2201 #: templates/js/translated/stock.js:2871 msgid "Location" msgstr "" -#: build/serializers.py:427 +#: build/serializers.py:300 +msgid "Stock location for build output" +msgstr "" + +#: build/serializers.py:314 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:315 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:330 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/serializers.py:355 stock/api.py:1025 +msgid "The following serial numbers already exist or are invalid" +msgstr "" + +#: build/serializers.py:402 build/serializers.py:464 build/serializers.py:553 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:441 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:433 +#: build/serializers.py:447 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:434 +#: build/serializers.py:448 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:439 +#: build/serializers.py:453 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:499 +#: build/serializers.py:513 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:505 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:922 -#: order/models.py:2020 order/serializers.py:593 stock/admin.py:165 -#: stock/serializers.py:801 stock/serializers.py:1340 +#: build/serializers.py:519 build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:62 order/models.py:950 +#: order/models.py:2044 order/serializers.py:596 stock/admin.py:164 +#: stock/serializers.py:932 stock/serializers.py:1456 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2189 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2191 #: templates/js/translated/purchase_order.js:1308 -#: templates/js/translated/purchase_order.js:1723 -#: templates/js/translated/return_order.js:331 -#: templates/js/translated/sales_order.js:819 -#: templates/js/translated/stock.js:2175 templates/js/translated/stock.js:2995 +#: templates/js/translated/purchase_order.js:1722 +#: templates/js/translated/return_order.js:330 +#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/stock.js:2176 templates/js/translated/stock.js:2995 #: templates/js/translated/stock.js:3120 msgid "Status" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:525 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:526 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:592 -msgid "Remove Allocated Stock" +#: build/serializers.py:611 +msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:593 -msgid "Subtract any stock which has already been allocated to this build" +#: build/serializers.py:612 +msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:599 +#: build/serializers.py:618 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:600 +#: build/serializers.py:619 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:627 +#: build/serializers.py:646 msgid "Not permitted" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:647 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:648 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:678 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:653 +#: build/serializers.py:680 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:663 +#: build/serializers.py:690 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:668 +#: build/serializers.py:695 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:669 +#: build/serializers.py:696 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:679 templates/js/translated/build.js:315 +#: build/serializers.py:706 templates/js/translated/build.js:315 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:684 order/serializers.py:297 order/serializers.py:1242 +#: build/serializers.py:711 order/serializers.py:300 order/serializers.py:1234 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:685 +#: build/serializers.py:712 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:695 templates/js/translated/build.js:319 +#: build/serializers.py:722 templates/js/translated/build.js:319 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:704 templates/js/translated/build.js:303 +#: build/serializers.py:731 templates/js/translated/build.js:303 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:734 +#: build/serializers.py:769 msgid "Build Line" msgstr "" -#: build/serializers.py:744 +#: build/serializers.py:779 msgid "Build output" msgstr "" -#: build/serializers.py:752 +#: build/serializers.py:787 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:788 +#: build/serializers.py:823 msgid "Build Line Item" msgstr "" -#: build/serializers.py:802 +#: build/serializers.py:837 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:817 stock/serializers.py:1065 +#: build/serializers.py:852 stock/serializers.py:1181 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:865 order/serializers.py:1233 +#: build/serializers.py:900 order/serializers.py:1225 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:871 +#: build/serializers.py:906 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:878 +#: build/serializers.py:913 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:902 order/serializers.py:1485 +#: build/serializers.py:937 order/serializers.py:1477 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:965 +#: build/serializers.py:1000 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:973 +#: build/serializers.py:1008 msgid "Exclude Location" msgstr "" -#: build/serializers.py:974 +#: build/serializers.py:1009 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:979 +#: build/serializers.py:1014 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:980 +#: build/serializers.py:1015 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:985 +#: build/serializers.py:1020 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:986 +#: build/serializers.py:1021 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:991 +#: build/serializers.py:1026 msgid "Optional Items" msgstr "" -#: build/serializers.py:992 +#: build/serializers.py:1027 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1097 part/models.py:3930 part/models.py:4366 -#: stock/api.py:758 +#: build/serializers.py:1049 +msgid "Failed to start auto-allocation task" +msgstr "" + +#: build/serializers.py:1139 part/models.py:3953 part/models.py:4387 +#: stock/api.py:788 msgid "BOM Item" msgstr "" -#: build/serializers.py:1106 templates/js/translated/index.js:130 +#: build/serializers.py:1148 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1111 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:817 part/serializers.py:1489 +#: build/serializers.py:1153 part/admin.py:132 part/bom.py:173 +#: part/serializers.py:820 part/serializers.py:1494 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2614 templates/js/translated/part.js:709 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/build.js:2613 templates/js/translated/part.js:710 +#: templates/js/translated/part.js:2149 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1116 part/serializers.py:1491 -#: templates/js/translated/build.js:2618 +#: build/serializers.py:1158 part/serializers.py:1496 +#: templates/js/translated/build.js:2617 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1121 part/bom.py:172 part/serializers.py:1514 +#: build/serializers.py:1163 part/bom.py:172 part/serializers.py:1519 #: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1893 +#: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/tasks.py:172 +#: 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 +msgid "Pending" +msgstr "" + +#: build/status_codes.py:12 +msgid "Production" +msgstr "" + +#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 +#: order/status_codes.py:70 +msgid "Cancelled" +msgstr "" + +#: build/status_codes.py:14 generic/states/tests.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 +msgid "Complete" +msgstr "" + +#: build/tasks.py:184 msgid "Stock required for build order" msgstr "" -#: build/tasks.py:189 +#: build/tasks.py:201 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:194 +#: build/tasks.py:206 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" @@ -1822,18 +1590,18 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:297 -#: order/models.py:1294 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:309 +#: order/models.py:1307 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:192 -#: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2237 templates/js/translated/part.js:1830 -#: templates/js/translated/purchase_order.js:1740 -#: templates/js/translated/purchase_order.js:2148 -#: templates/js/translated/return_order.js:347 -#: templates/js/translated/return_order.js:751 -#: templates/js/translated/sales_order.js:835 -#: templates/js/translated/sales_order.js:1867 +#: order/templates/order/sales_order_base.html:196 +#: report/templates/report/inventree_build_order_report.html:125 +#: templates/js/translated/build.js:2239 templates/js/translated/part.js:1831 +#: templates/js/translated/purchase_order.js:1739 +#: templates/js/translated/purchase_order.js:2147 +#: templates/js/translated/return_order.js:346 +#: templates/js/translated/return_order.js:750 +#: templates/js/translated/sales_order.js:871 +#: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" @@ -1846,7 +1614,7 @@ msgstr "" #: 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:122 +#: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 #: templates/js/translated/table_filters.js:524 #: templates/js/translated/table_filters.js:626 @@ -1860,42 +1628,42 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1507 order/models.py:1536 -#: order/models.py:1650 order/models.py:1804 +#: build/templates/build/detail.html:101 order/api.py:1463 order/models.py:845 +#: order/models.py:1551 order/models.py:1665 order/models.py:1819 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 -#: report/templates/report/inventree_build_order_base.html:135 -#: report/templates/report/inventree_so_report_base.html:14 +#: report/templates/report/inventree_build_order_report.html:135 +#: report/templates/report/inventree_sales_order_report.html:14 #: stock/templates/stock/item_base.html:369 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:769 -#: templates/js/translated/sales_order.js:992 +#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:1028 #: templates/js/translated/stock.js:2924 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:197 #: build/templates/build/detail.html:115 -#: report/templates/report/inventree_build_order_base.html:152 +#: 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:2154 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2156 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:273 +#: build/templates/build/build_base.html:269 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:283 +#: build/templates/build/build_base.html:279 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:295 +#: build/templates/build/build_base.html:291 msgid "Link Barcode to Build Order" msgstr "" @@ -1911,8 +1679,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1430 -#: templates/js/translated/purchase_order.js:2190 +#: build/templates/build/detail.html:49 order/models.py:1443 +#: templates/js/translated/purchase_order.js:2189 msgid "Destination" msgstr "" @@ -1924,12 +1692,12 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:163 +#: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1377 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/build.js:1380 +#: templates/js/translated/model_renderers.js:241 #: templates/js/translated/purchase_order.js:1274 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:2190 #: templates/js/translated/stock.js:3127 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 @@ -1939,8 +1707,8 @@ 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:186 -#: templates/js/translated/build.js:2197 +#: order/templates/order/sales_order_base.html:190 +#: templates/js/translated/build.js:2199 msgid "Created" msgstr "" @@ -1949,7 +1717,7 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:202 +#: order/templates/order/sales_order_base.html:206 #: templates/js/translated/table_filters.js:689 msgid "Completed" msgstr "" @@ -2043,11 +1811,11 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:434 +#: build/templates/build/detail.html:426 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:435 +#: build/templates/build/detail.html:427 msgid "All lines have been fully allocated" msgstr "" @@ -2063,6 +1831,34 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: common/api.py:689 +msgid "Is Link" +msgstr "" + +#: common/api.py:697 +msgid "Is File" +msgstr "" + +#: common/api.py:739 +msgid "User does not have permission to delete this attachment" +msgstr "" + +#: common/currency.py:130 +msgid "Invalid currency code" +msgstr "" + +#: common/currency.py:132 +msgid "Duplicate currency code" +msgstr "" + +#: common/currency.py:137 +msgid "No valid currency codes provided" +msgstr "" + +#: common/currency.py:154 +msgid "No plugin" +msgstr "" + #: common/files.py:63 #, python-brace-format msgid "Unsupported file format: {fmt}" @@ -2101,27 +1897,27 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:71 +#: common/models.py:73 msgid "Updated" msgstr "" -#: common/models.py:72 +#: common/models.py:74 msgid "Timestamp of last update" msgstr "" -#: common/models.py:105 +#: common/models.py:107 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Unique project code" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Project description" msgstr "" -#: common/models.py:146 +#: common/models.py:148 msgid "User or group responsible for this project" msgstr "" @@ -2153,1430 +1949,1460 @@ msgstr "" msgid "No group" msgstr "" -#: common/models.py:1157 -msgid "An empty domain is not allowed." -msgstr "" - -#: common/models.py:1159 -#, python-brace-format -msgid "Invalid domain name: {domain}" -msgstr "" - -#: common/models.py:1171 -msgid "No plugin" -msgstr "" - -#: common/models.py:1259 +#: common/models.py:1213 msgid "Restart required" msgstr "" -#: common/models.py:1261 +#: common/models.py:1215 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1268 +#: common/models.py:1222 msgid "Pending migrations" msgstr "" -#: common/models.py:1269 +#: common/models.py:1223 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1274 +#: common/models.py:1228 msgid "Server Instance Name" msgstr "" -#: common/models.py:1276 +#: common/models.py:1230 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1280 +#: common/models.py:1234 msgid "Use instance name" msgstr "" -#: common/models.py:1281 +#: common/models.py:1235 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1286 +#: common/models.py:1240 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1287 +#: common/models.py:1241 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1292 company/models.py:108 company/models.py:109 +#: common/models.py:1246 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1293 +#: common/models.py:1247 msgid "Internal company name" msgstr "" -#: common/models.py:1297 +#: common/models.py:1251 msgid "Base URL" msgstr "" -#: common/models.py:1298 +#: common/models.py:1252 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1304 +#: common/models.py:1258 msgid "Default Currency" msgstr "" -#: common/models.py:1305 +#: common/models.py:1259 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1311 +#: common/models.py:1265 +msgid "Supported Currencies" +msgstr "" + +#: common/models.py:1266 +msgid "List of supported currency codes" +msgstr "" + +#: common/models.py:1272 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1313 +#: common/models.py:1274 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1316 common/models.py:1372 common/models.py:1385 -#: common/models.py:1393 common/models.py:1402 common/models.py:1411 -#: common/models.py:1613 common/models.py:1635 common/models.py:1750 -#: common/models.py:2053 +#: common/models.py:1277 common/models.py:1333 common/models.py:1346 +#: common/models.py:1354 common/models.py:1363 common/models.py:1372 +#: common/models.py:1590 common/models.py:1612 common/models.py:1727 +#: common/models.py:2046 msgid "days" msgstr "" -#: common/models.py:1320 +#: common/models.py:1281 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1321 +#: common/models.py:1282 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1326 +#: common/models.py:1287 msgid "Download from URL" msgstr "" -#: common/models.py:1328 +#: common/models.py:1289 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1334 +#: common/models.py:1295 msgid "Download Size Limit" msgstr "" -#: common/models.py:1335 +#: common/models.py:1296 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1341 +#: common/models.py:1302 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1343 +#: common/models.py:1304 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:1348 +#: common/models.py:1309 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1349 +#: common/models.py:1310 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1354 +#: common/models.py:1315 msgid "Require confirm" msgstr "" -#: common/models.py:1355 +#: common/models.py:1316 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1360 +#: common/models.py:1321 msgid "Tree Depth" msgstr "" -#: common/models.py:1362 +#: common/models.py:1323 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1368 +#: common/models.py:1329 msgid "Update Check Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1330 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1375 +#: common/models.py:1336 msgid "Automatic Backup" msgstr "" -#: common/models.py:1376 +#: common/models.py:1337 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1381 +#: common/models.py:1342 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1382 +#: common/models.py:1343 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1388 +#: common/models.py:1349 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1390 +#: common/models.py:1351 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1397 +#: common/models.py:1358 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1399 +#: common/models.py:1360 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1406 +#: common/models.py:1367 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1408 +#: common/models.py:1369 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1415 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1376 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1416 +#: common/models.py:1377 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1421 +#: common/models.py:1382 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1422 +#: common/models.py:1383 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1428 +#: common/models.py:1389 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1429 +#: common/models.py:1390 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1434 +#: common/models.py:1395 msgid "Part Revisions" msgstr "" -#: common/models.py:1435 +#: common/models.py:1396 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1401 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1402 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1407 msgid "IPN Regex" msgstr "" -#: common/models.py:1441 +#: common/models.py:1408 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1444 +#: common/models.py:1411 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1445 +#: common/models.py:1412 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1450 +#: common/models.py:1417 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1451 +#: common/models.py:1418 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1456 +#: common/models.py:1423 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1457 +#: common/models.py:1424 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1462 +#: common/models.py:1429 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1463 +#: common/models.py:1430 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1468 +#: common/models.py:1435 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1469 +#: common/models.py:1436 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1474 +#: common/models.py:1441 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1475 +#: common/models.py:1442 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1480 part/admin.py:108 part/models.py:3772 -#: report/models.py:182 stock/serializers.py:99 +#: common/models.py:1447 part/admin.py:108 part/models.py:3795 +#: report/models.py:294 report/models.py:361 report/serializers.py:90 +#: report/serializers.py:131 stock/serializers.py:227 #: templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:767 msgid "Template" msgstr "" -#: common/models.py:1481 +#: common/models.py:1448 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1486 part/admin.py:91 part/admin.py:431 part/models.py:1016 +#: common/models.py:1453 part/admin.py:91 part/admin.py:425 part/models.py:1052 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:721 msgid "Assembly" msgstr "" -#: common/models.py:1487 +#: common/models.py:1454 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1492 part/admin.py:95 part/models.py:1022 +#: common/models.py:1459 part/admin.py:95 part/models.py:1058 #: templates/js/translated/table_filters.js:729 msgid "Component" msgstr "" -#: common/models.py:1493 +#: common/models.py:1460 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1498 part/admin.py:100 part/models.py:1034 +#: common/models.py:1465 part/admin.py:100 part/models.py:1070 msgid "Purchaseable" msgstr "" -#: common/models.py:1499 +#: common/models.py:1466 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1504 part/admin.py:104 part/models.py:1040 +#: common/models.py:1471 part/admin.py:104 part/models.py:1076 #: templates/js/translated/table_filters.js:755 msgid "Salable" msgstr "" -#: common/models.py:1505 +#: common/models.py:1472 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1510 part/admin.py:113 part/models.py:1028 +#: common/models.py:1477 part/admin.py:113 part/models.py:1064 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:771 msgid "Trackable" msgstr "" -#: common/models.py:1511 +#: common/models.py:1478 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1516 part/admin.py:117 part/models.py:1050 +#: common/models.py:1483 part/admin.py:117 part/models.py:1086 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:775 msgid "Virtual" msgstr "" -#: common/models.py:1517 +#: common/models.py:1484 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1522 +#: common/models.py:1489 msgid "Show Import in Views" msgstr "" -#: common/models.py:1523 +#: common/models.py:1490 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1528 +#: common/models.py:1495 msgid "Show related parts" msgstr "" -#: common/models.py:1529 +#: common/models.py:1496 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1534 +#: common/models.py:1501 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1535 +#: common/models.py:1502 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1540 templates/js/translated/part.js:107 +#: common/models.py:1507 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1542 +#: common/models.py:1509 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1548 +#: common/models.py:1515 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1549 +#: common/models.py:1516 msgid "Format to display the part name" msgstr "" -#: common/models.py:1555 +#: common/models.py:1522 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1556 +#: common/models.py:1523 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1560 +#: common/models.py:1527 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1562 +#: common/models.py:1529 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1568 +#: common/models.py:1535 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1570 +#: common/models.py:1537 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1576 +#: common/models.py:1548 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1578 +#: common/models.py:1550 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1584 +#: common/models.py:1561 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1586 +#: common/models.py:1563 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1592 +#: common/models.py:1569 msgid "Purchase History Override" msgstr "" -#: common/models.py:1594 +#: common/models.py:1571 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1600 +#: common/models.py:1577 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1602 +#: common/models.py:1579 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1608 +#: common/models.py:1585 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1610 +#: common/models.py:1587 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1594 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1618 +#: common/models.py:1595 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1623 +#: common/models.py:1600 msgid "Active Variants Only" msgstr "" -#: common/models.py:1625 +#: common/models.py:1602 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1631 +#: common/models.py:1608 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1633 +#: common/models.py:1610 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1640 +#: common/models.py:1617 msgid "Internal Prices" msgstr "" -#: common/models.py:1641 +#: common/models.py:1618 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1646 +#: common/models.py:1623 msgid "Internal Price Override" msgstr "" -#: common/models.py:1648 +#: common/models.py:1625 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1654 +#: common/models.py:1631 msgid "Enable label printing" msgstr "" -#: common/models.py:1655 +#: common/models.py:1632 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1660 +#: common/models.py:1637 msgid "Label Image DPI" msgstr "" -#: common/models.py:1662 +#: common/models.py:1639 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1668 +#: common/models.py:1645 msgid "Enable Reports" msgstr "" -#: common/models.py:1669 +#: common/models.py:1646 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1674 templates/stats.html:25 +#: common/models.py:1651 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1675 +#: common/models.py:1652 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1680 +#: common/models.py:1657 msgid "Log Report Errors" msgstr "" -#: common/models.py:1681 +#: common/models.py:1658 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1686 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:203 +#: common/models.py:1663 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1687 +#: common/models.py:1664 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1669 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1693 +#: common/models.py:1670 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1698 +#: common/models.py:1675 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1700 +#: common/models.py:1677 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1706 +#: common/models.py:1683 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1707 +#: common/models.py:1684 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1712 +#: common/models.py:1689 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1713 +#: common/models.py:1690 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1718 +#: common/models.py:1695 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1720 +#: common/models.py:1697 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1726 +#: common/models.py:1703 msgid "Batch Code Template" msgstr "" -#: common/models.py:1728 +#: common/models.py:1705 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1733 +#: common/models.py:1710 msgid "Stock Expiry" msgstr "" -#: common/models.py:1734 +#: common/models.py:1711 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1739 +#: common/models.py:1716 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1740 +#: common/models.py:1717 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1745 +#: common/models.py:1722 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1747 +#: common/models.py:1724 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1754 +#: common/models.py:1731 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1755 +#: common/models.py:1732 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1760 +#: common/models.py:1737 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1761 +#: common/models.py:1738 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1743 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1767 +#: common/models.py:1744 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1771 +#: common/models.py:1748 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1772 +#: common/models.py:1749 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1777 +#: common/models.py:1754 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1779 +#: common/models.py:1756 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1785 +#: common/models.py:1762 +msgid "Allow Out of Stock Transfer" +msgstr "" + +#: common/models.py:1764 +msgid "Allow stock items which are not in stock to be transferred between stock locations" +msgstr "" + +#: common/models.py:1770 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1787 +#: common/models.py:1772 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1793 common/models.py:1821 common/models.py:1843 -#: common/models.py:1871 +#: common/models.py:1778 common/models.py:1806 common/models.py:1828 +#: common/models.py:1864 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1794 common/models.py:1822 common/models.py:1844 -#: common/models.py:1872 +#: common/models.py:1779 common/models.py:1807 common/models.py:1829 +#: common/models.py:1865 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1799 +#: common/models.py:1784 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1801 +#: common/models.py:1786 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1807 +#: common/models.py:1792 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1808 +#: common/models.py:1793 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1813 +#: common/models.py:1798 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1815 +#: common/models.py:1800 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1827 +#: common/models.py:1812 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1829 +#: common/models.py:1814 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1835 +#: common/models.py:1820 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1822 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1834 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1850 +#: common/models.py:1835 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1855 +#: common/models.py:1840 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1857 +#: common/models.py:1842 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1863 +#: common/models.py:1848 +msgid "Mark Shipped Orders as Complete" +msgstr "" + +#: common/models.py:1850 +msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" +msgstr "" + +#: common/models.py:1856 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1865 +#: common/models.py:1858 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1877 +#: common/models.py:1870 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1872 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1878 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1887 +#: common/models.py:1880 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1894 +#: common/models.py:1887 msgid "Enable password forgot" msgstr "" -#: common/models.py:1895 +#: common/models.py:1888 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1900 +#: common/models.py:1893 msgid "Enable registration" msgstr "" -#: common/models.py:1901 +#: common/models.py:1894 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1906 +#: common/models.py:1899 msgid "Enable SSO" msgstr "" -#: common/models.py:1907 +#: common/models.py:1900 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1912 +#: common/models.py:1905 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1914 +#: common/models.py:1907 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1920 +#: common/models.py:1913 msgid "Email required" msgstr "" -#: common/models.py:1921 +#: common/models.py:1914 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1926 +#: common/models.py:1919 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1928 +#: common/models.py:1921 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1934 +#: common/models.py:1927 msgid "Mail twice" msgstr "" -#: common/models.py:1935 +#: common/models.py:1928 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1940 +#: common/models.py:1933 msgid "Password twice" msgstr "" -#: common/models.py:1941 +#: common/models.py:1934 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1946 +#: common/models.py:1939 msgid "Allowed domains" msgstr "" -#: common/models.py:1948 +#: common/models.py:1941 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1954 +#: common/models.py:1947 msgid "Group on signup" msgstr "" -#: common/models.py:1955 +#: common/models.py:1948 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:1953 msgid "Enforce MFA" msgstr "" -#: common/models.py:1961 +#: common/models.py:1954 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1966 +#: common/models.py:1959 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1968 +#: common/models.py:1961 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1976 +#: common/models.py:1969 msgid "Check for plugin updates" msgstr "" -#: common/models.py:1977 +#: common/models.py:1970 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:1983 +#: common/models.py:1976 msgid "Enable URL integration" msgstr "" -#: common/models.py:1984 +#: common/models.py:1977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1990 +#: common/models.py:1983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1991 +#: common/models.py:1984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1997 +#: common/models.py:1990 msgid "Enable app integration" msgstr "" -#: common/models.py:1998 +#: common/models.py:1991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2004 +#: common/models.py:1997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2005 +#: common/models.py:1998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2011 +#: common/models.py:2004 msgid "Enable event integration" msgstr "" -#: common/models.py:2012 +#: common/models.py:2005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2018 +#: common/models.py:2011 msgid "Enable project codes" msgstr "" -#: common/models.py:2019 +#: common/models.py:2012 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2024 +#: common/models.py:2017 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2026 +#: common/models.py:2019 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2032 +#: common/models.py:2025 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2034 +#: common/models.py:2027 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2040 +#: common/models.py:2033 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2042 +#: common/models.py:2035 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2048 +#: common/models.py:2041 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2050 +#: common/models.py:2043 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2057 +#: common/models.py:2050 msgid "Display Users full names" msgstr "" -#: common/models.py:2058 +#: common/models.py:2051 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2063 +#: common/models.py:2056 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2064 +#: common/models.py:2057 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2076 common/models.py:2486 +#: common/models.py:2069 common/models.py:2479 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2119 +#: common/models.py:2112 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2121 +#: common/models.py:2114 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2127 +#: common/models.py:2120 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2128 +#: common/models.py:2121 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2133 +#: common/models.py:2126 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2134 +#: common/models.py:2127 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2139 +#: common/models.py:2132 msgid "Show latest parts" msgstr "" -#: common/models.py:2140 +#: common/models.py:2133 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2145 +#: common/models.py:2138 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2146 +#: common/models.py:2139 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2151 +#: common/models.py:2144 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2152 +#: common/models.py:2145 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2157 +#: common/models.py:2150 msgid "Show low stock" msgstr "" -#: common/models.py:2158 +#: common/models.py:2151 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2163 +#: common/models.py:2156 msgid "Show depleted stock" msgstr "" -#: common/models.py:2164 +#: common/models.py:2157 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2169 +#: common/models.py:2162 msgid "Show needed stock" msgstr "" -#: common/models.py:2170 +#: common/models.py:2163 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2175 +#: common/models.py:2168 msgid "Show expired stock" msgstr "" -#: common/models.py:2176 +#: common/models.py:2169 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2181 +#: common/models.py:2174 msgid "Show stale stock" msgstr "" -#: common/models.py:2182 +#: common/models.py:2175 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2187 +#: common/models.py:2180 msgid "Show pending builds" msgstr "" -#: common/models.py:2188 +#: common/models.py:2181 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2193 +#: common/models.py:2186 msgid "Show overdue builds" msgstr "" -#: common/models.py:2194 +#: common/models.py:2187 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2199 +#: common/models.py:2192 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2200 +#: common/models.py:2193 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2205 +#: common/models.py:2198 msgid "Show overdue POs" msgstr "" -#: common/models.py:2206 +#: common/models.py:2199 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2211 +#: common/models.py:2204 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2212 +#: common/models.py:2205 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2217 +#: common/models.py:2210 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2218 +#: common/models.py:2211 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2223 +#: common/models.py:2216 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2224 +#: common/models.py:2217 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2229 +#: common/models.py:2222 msgid "Show News" msgstr "" -#: common/models.py:2230 +#: common/models.py:2223 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2235 +#: common/models.py:2228 msgid "Inline label display" msgstr "" -#: common/models.py:2237 +#: common/models.py:2230 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2243 +#: common/models.py:2236 msgid "Default label printer" msgstr "" -#: common/models.py:2245 +#: common/models.py:2238 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2251 +#: common/models.py:2244 msgid "Inline report display" msgstr "" -#: common/models.py:2253 +#: common/models.py:2246 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2259 +#: common/models.py:2252 msgid "Search Parts" msgstr "" -#: common/models.py:2260 +#: common/models.py:2253 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2265 +#: common/models.py:2258 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2266 +#: common/models.py:2259 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2271 +#: common/models.py:2264 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2272 +#: common/models.py:2265 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2277 +#: common/models.py:2270 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2278 +#: common/models.py:2271 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2283 +#: common/models.py:2276 msgid "Search Categories" msgstr "" -#: common/models.py:2284 +#: common/models.py:2277 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2289 +#: common/models.py:2282 msgid "Search Stock" msgstr "" -#: common/models.py:2290 +#: common/models.py:2283 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2295 +#: common/models.py:2288 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2297 +#: common/models.py:2290 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2303 +#: common/models.py:2296 msgid "Search Locations" msgstr "" -#: common/models.py:2304 +#: common/models.py:2297 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2309 +#: common/models.py:2302 msgid "Search Companies" msgstr "" -#: common/models.py:2310 +#: common/models.py:2303 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2315 +#: common/models.py:2308 msgid "Search Build Orders" msgstr "" -#: common/models.py:2316 +#: common/models.py:2309 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2321 +#: common/models.py:2314 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2322 +#: common/models.py:2315 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2327 +#: common/models.py:2320 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2329 +#: common/models.py:2322 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2328 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2336 +#: common/models.py:2329 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2334 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2343 +#: common/models.py:2336 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2349 +#: common/models.py:2342 msgid "Search Return Orders" msgstr "" -#: common/models.py:2350 +#: common/models.py:2343 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2355 +#: common/models.py:2348 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2357 +#: common/models.py:2350 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2363 +#: common/models.py:2356 msgid "Search Preview Results" msgstr "" -#: common/models.py:2365 +#: common/models.py:2358 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2371 +#: common/models.py:2364 msgid "Regex Search" msgstr "" -#: common/models.py:2372 +#: common/models.py:2365 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2377 +#: common/models.py:2370 msgid "Whole Word Search" msgstr "" -#: common/models.py:2378 +#: common/models.py:2371 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2383 +#: common/models.py:2376 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2384 +#: common/models.py:2377 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2389 +#: common/models.py:2382 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2390 +#: common/models.py:2383 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2395 +#: common/models.py:2388 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2396 +#: common/models.py:2389 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2401 +#: common/models.py:2394 msgid "Date Format" msgstr "" -#: common/models.py:2402 +#: common/models.py:2395 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2415 part/templates/part/detail.html:41 +#: common/models.py:2408 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2416 +#: common/models.py:2409 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2421 part/templates/part/detail.html:62 +#: common/models.py:2414 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2423 +#: common/models.py:2416 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2429 +#: common/models.py:2422 msgid "Table String Length" msgstr "" -#: common/models.py:2431 +#: common/models.py:2424 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2437 +#: common/models.py:2430 msgid "Default part label template" msgstr "" -#: common/models.py:2438 +#: common/models.py:2431 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2443 +#: common/models.py:2436 msgid "Default stock item template" msgstr "" -#: common/models.py:2445 +#: common/models.py:2438 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2451 +#: common/models.py:2444 msgid "Default stock location label template" msgstr "" -#: common/models.py:2453 +#: common/models.py:2446 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2459 +#: common/models.py:2452 msgid "Default build line label template" msgstr "" -#: common/models.py:2461 +#: common/models.py:2454 msgid "The build line label template to be automatically selected" msgstr "" -#: common/models.py:2467 +#: common/models.py:2460 msgid "Receive error reports" msgstr "" -#: common/models.py:2468 +#: common/models.py:2461 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2473 +#: common/models.py:2466 msgid "Last used printing machines" msgstr "" -#: common/models.py:2474 +#: common/models.py:2467 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2517 +#: common/models.py:2487 common/models.py:2488 common/models.py:2636 +#: common/models.py:2637 common/models.py:2882 common/models.py:2883 +#: common/models.py:3193 common/models.py:3194 part/models.py:3193 +#: part/models.py:3280 part/models.py:3353 part/models.py:3381 +#: plugin/models.py:274 plugin/models.py:275 +#: report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3036 users/models.py:111 +msgid "User" +msgstr "Потребител" + +#: common/models.py:2510 msgid "Price break quantity" msgstr "" -#: common/models.py:2524 company/serializers.py:496 order/admin.py:42 -#: order/models.py:1333 order/models.py:2241 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1885 +#: common/models.py:2517 company/serializers.py:472 order/admin.py:42 +#: order/models.py:1346 order/models.py:2265 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1886 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:741 +#: templates/js/translated/return_order.js:740 msgid "Price" msgstr "" -#: common/models.py:2525 +#: common/models.py:2518 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2696 common/models.py:2881 +#: common/models.py:2613 common/models.py:2798 msgid "Endpoint" msgstr "" -#: common/models.py:2697 +#: common/models.py:2614 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2707 +#: common/models.py:2624 msgid "Name for this webhook" msgstr "" -#: common/models.py:2711 company/models.py:160 company/models.py:813 -#: machine/models.py:39 part/admin.py:88 part/models.py:1045 -#: plugin/models.py:56 templates/js/translated/company.js:523 +#: common/models.py:2628 company/models.py:163 company/models.py:782 +#: machine/models.py:39 part/admin.py:88 part/models.py:1081 +#: 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 @@ -3586,138 +3412,210 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:2711 +#: common/models.py:2628 msgid "Is this webhook active" msgstr "" -#: common/models.py:2727 users/models.py:159 +#: common/models.py:2644 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2728 +#: common/models.py:2645 msgid "Token for access" msgstr "" -#: common/models.py:2736 +#: common/models.py:2653 msgid "Secret" msgstr "" -#: common/models.py:2737 +#: common/models.py:2654 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2845 +#: common/models.py:2762 msgid "Message ID" msgstr "" -#: common/models.py:2846 +#: common/models.py:2763 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2854 +#: common/models.py:2771 msgid "Host" msgstr "" -#: common/models.py:2855 +#: common/models.py:2772 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2863 +#: common/models.py:2780 msgid "Header" msgstr "" -#: common/models.py:2864 +#: common/models.py:2781 msgid "Header of this message" msgstr "" -#: common/models.py:2871 +#: common/models.py:2788 msgid "Body" msgstr "" -#: common/models.py:2872 +#: common/models.py:2789 msgid "Body of this message" msgstr "" -#: common/models.py:2882 +#: common/models.py:2799 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2887 +#: common/models.py:2804 msgid "Worked on" msgstr "" -#: common/models.py:2888 +#: common/models.py:2805 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3014 +#: common/models.py:2931 msgid "Id" msgstr "" -#: common/models.py:3016 templates/js/translated/company.js:965 +#: common/models.py:2933 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:60 +#: common/models.py:2935 common/models.py:3177 company/models.py:149 +#: company/models.py:440 company/models.py:500 company/models.py:799 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 +#: part/admin.py:55 part/models.py:955 +#: 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:2456 +#: templates/js/translated/purchase_order.js:2040 +#: templates/js/translated/purchase_order.js:2204 +#: templates/js/translated/return_order.js:779 +#: templates/js/translated/sales_order.js:1092 +#: templates/js/translated/sales_order.js:2023 +msgid "Link" +msgstr "" + +#: common/models.py:2937 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3022 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2939 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:3024 templates/js/translated/news.js:52 +#: common/models.py:2941 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Read" msgstr "" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Was this news item read?" msgstr "" -#: common/models.py:3044 company/models.py:156 part/models.py:929 +#: common/models.py:2961 company/models.py:159 part/models.py:965 #: 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_base.html:35 +#: report/templates/report/inventree_return_order_report.html:35 #: stock/templates/stock/item_base.html:133 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3044 +#: common/models.py:2961 msgid "Image file" msgstr "" -#: common/models.py:3086 +#: common/models.py:2973 common/models.py:3161 +msgid "Target model type for this image" +msgstr "" + +#: common/models.py:2977 +msgid "Target model ID for this image" +msgstr "" + +#: common/models.py:3018 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3105 +#: common/models.py:3037 msgid "Unit name" msgstr "" -#: common/models.py:3112 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3044 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3113 +#: common/models.py:3045 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3120 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3052 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3121 +#: common/models.py:3053 msgid "Unit definition" msgstr "" +#: common/models.py:3111 common/models.py:3168 stock/models.py:2426 +#: templates/js/translated/attachment.js:119 +#: templates/js/translated/attachment.js:345 +msgid "Attachment" +msgstr "" + +#: common/models.py:3123 +msgid "Missing file" +msgstr "" + +#: common/models.py:3124 +msgid "Missing external link" +msgstr "" + +#: common/models.py:3169 +msgid "Select file to attach" +msgstr "" + +#: common/models.py:3184 templates/js/translated/attachment.js:120 +#: templates/js/translated/attachment.js:360 +msgid "Comment" +msgstr "" + +#: common/models.py:3185 +msgid "Attachment comment" +msgstr "" + +#: common/models.py:3201 +msgid "Upload date" +msgstr "" + +#: common/models.py:3202 +msgid "Date the file was uploaded" +msgstr "" + +#: common/models.py:3206 +msgid "File size" +msgstr "" + +#: common/models.py:3206 +msgid "File size in bytes" +msgstr "" + +#: common/models.py:3244 common/serializers.py:553 +msgid "Invalid model type specified for attachment" +msgstr "" + #: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" @@ -3736,7 +3634,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:468 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:472 msgid "Items Received" msgstr "" @@ -3752,66 +3650,95 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:333 +#: common/serializers.py:371 msgid "Is Running" msgstr "" -#: common/serializers.py:339 +#: common/serializers.py:377 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:345 +#: common/serializers.py:383 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:351 +#: common/serializers.py:389 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Task ID" msgstr "" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Unique task ID" msgstr "" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock" msgstr "" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock time" msgstr "" -#: common/serializers.py:370 +#: common/serializers.py:408 msgid "Task name" msgstr "" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function" msgstr "" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function name" msgstr "" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Arguments" msgstr "" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Task arguments" msgstr "" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Task keyword arguments" msgstr "" +#: common/serializers.py:525 +msgid "Filename" +msgstr "" + +#: common/serializers.py:532 report/api.py:100 report/serializers.py:53 +msgid "Model Type" +msgstr "" + +#: common/serializers.py:559 +msgid "User does not have permission to create or edit attachments for this model" +msgstr "" + +#: common/validators.py:77 +msgid "Minimum places cannot be greater than maximum places" +msgstr "" + +#: common/validators.py:89 +msgid "Maximum places cannot be less than minimum places" +msgstr "" + +#: common/validators.py:100 +msgid "An empty domain is not allowed." +msgstr "" + +#: common/validators.py:102 +#, python-brace-format +msgid "Invalid domain name: {domain}" +msgstr "" + #: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 @@ -3850,210 +3777,222 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/api.py:164 +#: company/api.py:144 msgid "Part is Active" msgstr "" -#: company/api.py:168 +#: company/api.py:148 msgid "Manufacturer is Active" msgstr "" -#: company/api.py:317 +#: company/api.py:281 msgid "Supplier Part is Active" msgstr "" -#: company/api.py:321 +#: company/api.py:285 msgid "Internal Part is Active" msgstr "" -#: company/api.py:325 +#: company/api.py:289 msgid "Supplier is Active" msgstr "" -#: company/models.py:114 +#: company/models.py:100 company/models.py:365 +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 stock/api.py:806 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +msgid "Company" +msgstr "" + +#: company/models.py:101 company/views.py:51 +#: templates/js/translated/search.js:192 +msgid "Companies" +msgstr "" + +#: company/models.py:117 msgid "Company description" msgstr "" -#: company/models.py:115 +#: company/models.py:118 msgid "Description of the company" msgstr "" -#: company/models.py:120 company/templates/company/company_base.html:106 +#: company/models.py:123 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:532 msgid "Website" msgstr "" -#: company/models.py:120 +#: company/models.py:123 msgid "Company website URL" msgstr "" -#: company/models.py:125 +#: company/models.py:128 msgid "Phone number" msgstr "" -#: company/models.py:127 +#: company/models.py:130 msgid "Contact phone number" msgstr "" -#: company/models.py:134 +#: company/models.py:137 msgid "Contact email address" msgstr "" -#: company/models.py:139 company/templates/company/company_base.html:145 -#: order/models.py:331 order/templates/order/order_base.html:203 +#: company/models.py:142 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:214 +#: order/templates/order/sales_order_base.html:218 msgid "Contact" msgstr "" -#: company/models.py:141 +#: company/models.py:144 msgid "Point of contact" msgstr "" -#: company/models.py:147 +#: company/models.py:150 msgid "Link to external company information" msgstr "" -#: company/models.py:160 +#: company/models.py:163 msgid "Is this company active?" msgstr "" -#: company/models.py:165 +#: company/models.py:168 msgid "is customer" msgstr "" -#: company/models.py:166 +#: company/models.py:169 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:171 +#: company/models.py:174 msgid "is supplier" msgstr "" -#: company/models.py:172 +#: company/models.py:175 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:177 +#: company/models.py:180 msgid "is manufacturer" msgstr "" -#: company/models.py:178 +#: company/models.py:181 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:186 +#: company/models.py:189 msgid "Default currency used for this company" msgstr "" -#: company/models.py:273 company/models.py:382 -#: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:776 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 -msgid "Company" -msgstr "" - -#: company/models.py:383 +#: company/models.py:366 msgid "Select company" msgstr "" -#: company/models.py:388 +#: company/models.py:371 msgid "Address title" msgstr "" -#: company/models.py:389 +#: company/models.py:372 msgid "Title describing the address entry" msgstr "" -#: company/models.py:395 +#: company/models.py:378 msgid "Primary address" msgstr "" -#: company/models.py:396 +#: company/models.py:379 msgid "Set as primary address" msgstr "" -#: company/models.py:401 templates/js/translated/company.js:914 +#: company/models.py:384 templates/js/translated/company.js:914 #: templates/js/translated/company.js:971 msgid "Line 1" msgstr "" -#: company/models.py:402 +#: company/models.py:385 msgid "Address line 1" msgstr "" -#: company/models.py:408 templates/js/translated/company.js:915 +#: company/models.py:391 templates/js/translated/company.js:915 #: templates/js/translated/company.js:977 msgid "Line 2" msgstr "" -#: company/models.py:409 +#: company/models.py:392 msgid "Address line 2" msgstr "" -#: company/models.py:415 company/models.py:416 +#: company/models.py:398 company/models.py:399 #: templates/js/translated/company.js:983 msgid "Postal code" msgstr "" -#: company/models.py:422 +#: company/models.py:405 msgid "City/Region" msgstr "" -#: company/models.py:423 +#: company/models.py:406 msgid "Postal code city/region" msgstr "" -#: company/models.py:429 +#: company/models.py:412 msgid "State/Province" msgstr "" -#: company/models.py:430 +#: company/models.py:413 msgid "State or province" msgstr "" -#: company/models.py:436 templates/js/translated/company.js:1001 +#: company/models.py:419 templates/js/translated/company.js:1001 msgid "Country" msgstr "" -#: company/models.py:437 +#: company/models.py:420 msgid "Address country" msgstr "" -#: company/models.py:443 +#: company/models.py:426 msgid "Courier shipping notes" msgstr "" -#: company/models.py:444 +#: company/models.py:427 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:450 +#: company/models.py:433 msgid "Internal shipping notes" msgstr "" -#: company/models.py:451 +#: company/models.py:434 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:458 +#: company/models.py:441 msgid "Link to address information (external)" msgstr "" -#: company/models.py:489 company/models.py:791 stock/models.py:751 -#: stock/serializers.py:266 stock/templates/stock/item_base.html:142 +#: company/models.py:463 company/models.py:574 company/models.py:792 +#: 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:475 company/models.py:760 stock/models.py:766 +#: stock/serializers.py:422 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:491 company/models.py:793 +#: company/models.py:477 company/models.py:762 msgid "Select part" msgstr "" -#: company/models.py:500 company/templates/company/company_base.html:82 +#: company/models.py:486 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:515 +#: company/templates/company/supplier_part.html:145 part/serializers.py:517 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4063,190 +4002,191 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:501 +#: company/models.py:487 msgid "Select manufacturer" msgstr "" -#: company/models.py:507 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:525 +#: company/models.py:493 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:527 #: 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:1800 -#: templates/js/translated/purchase_order.js:1852 -#: templates/js/translated/purchase_order.js:2054 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1801 +#: templates/js/translated/purchase_order.js:1851 +#: templates/js/translated/purchase_order.js:2053 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:494 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:515 +#: company/models.py:501 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:523 +#: company/models.py:510 msgid "Manufacturer part description" msgstr "" -#: company/models.py:580 company/models.py:607 company/models.py:823 -#: 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:614 +#: company/models.py:581 msgid "Parameter name" msgstr "" -#: company/models.py:620 -#: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2436 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1492 -#: templates/js/translated/stock.js:1519 +#: company/models.py:587 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2418 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1493 +#: templates/js/translated/stock.js:1522 msgid "Value" msgstr "" -#: company/models.py:621 +#: company/models.py:588 msgid "Parameter value" msgstr "" -#: company/models.py:628 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1009 part/models.py:3623 +#: company/models.py:595 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1045 part/models.py:3646 #: part/templates/part/part_base.html:284 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1511 -#: templates/js/translated/part.js:1615 templates/js/translated/part.js:2370 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1512 +#: templates/js/translated/part.js:1616 templates/js/translated/part.js:2370 msgid "Units" msgstr "" -#: company/models.py:629 +#: company/models.py:596 msgid "Parameter units" msgstr "" -#: company/models.py:731 +#: company/models.py:648 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:452 +#: stock/models.py:777 stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:1600 +#: templates/js/translated/purchase_order.js:752 +#: templates/js/translated/stock.js:2280 +msgid "Supplier Part" +msgstr "" + +#: company/models.py:700 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:738 +#: company/models.py:707 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:752 +#: company/models.py:721 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:801 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:465 +#: company/models.py:770 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:499 plugin/builtin/suppliers/digikey.py:25 +#: part/serializers.py:501 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:1768 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1769 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1690 +#: templates/js/translated/purchase_order.js:1689 #: templates/js/translated/table_filters.js:804 msgid "Supplier" msgstr "" -#: company/models.py:802 +#: company/models.py:771 msgid "Select supplier" msgstr "" -#: company/models.py:808 part/serializers.py:510 +#: company/models.py:777 part/serializers.py:512 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:814 +#: company/models.py:783 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:824 +#: company/models.py:793 msgid "Select manufacturer part" msgstr "" -#: company/models.py:831 +#: company/models.py:800 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:839 +#: company/models.py:809 msgid "Supplier part description" msgstr "" -#: company/models.py:846 company/templates/company/supplier_part.html:187 -#: part/admin.py:418 part/models.py:4070 part/templates/part/upload_bom.html:59 +#: company/models.py:816 company/templates/company/supplier_part.html:187 +#: part/admin.py:412 part/models.py:4093 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 -#: report/templates/report/inventree_po_report_base.html:32 -#: report/templates/report/inventree_return_order_report_base.html:27 -#: report/templates/report/inventree_slr_report.html:105 -#: report/templates/report/inventree_so_report_base.html:32 -#: stock/serializers.py:579 +#: 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:710 msgid "Note" msgstr "" -#: company/models.py:855 part/models.py:1967 +#: company/models.py:825 part/models.py:2003 msgid "base cost" msgstr "" -#: company/models.py:856 part/models.py:1968 +#: company/models.py:826 part/models.py:2004 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:863 company/templates/company/supplier_part.html:160 -#: stock/admin.py:224 stock/models.py:782 stock/serializers.py:1350 +#: company/models.py:833 company/templates/company/supplier_part.html:160 +#: stock/admin.py:228 stock/models.py:797 stock/serializers.py:1466 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2424 msgid "Packaging" msgstr "" -#: company/models.py:864 +#: company/models.py:834 msgid "Part packaging" msgstr "" -#: company/models.py:869 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 +#: company/models.py:839 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 #: 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:2085 -#: templates/js/translated/purchase_order.js:2102 +#: templates/js/translated/purchase_order.js:2084 +#: templates/js/translated/purchase_order.js:2101 msgid "Pack Quantity" msgstr "" -#: company/models.py:871 +#: company/models.py:841 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:890 part/models.py:1974 +#: company/models.py:860 part/models.py:2010 msgid "multiple" msgstr "" -#: company/models.py:891 +#: company/models.py:861 msgid "Order multiple" msgstr "" -#: company/models.py:903 +#: company/models.py:873 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:909 +#: company/models.py:879 msgid "Availability Updated" msgstr "" -#: company/models.py:910 +#: company/models.py:880 msgid "Date of last update of availability data" msgstr "" -#: company/serializers.py:163 +#: company/serializers.py:161 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:381 part/admin.py:126 +#: company/serializers.py:357 part/admin.py:126 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4257,8 +4197,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:306 -#: templates/js/translated/part.js:814 templates/js/translated/part.js:1218 +#: templates/js/translated/model_renderers.js:312 +#: templates/js/translated/part.js:815 templates/js/translated/part.js:1219 msgid "Inactive" msgstr "" @@ -4293,11 +4233,11 @@ msgstr "" #: company/templates/company/manufacturer_part.html:51 #: company/templates/company/supplier_part.html:83 #: part/templates/part/part_thumb.html:20 -#: report/templates/report/inventree_build_order_base.html:98 -#: report/templates/report/inventree_po_report_base.html:40 -#: report/templates/report/inventree_so_report_base.html:40 -#: report/templates/report/inventree_test_report_base.html:84 -#: report/templates/report/inventree_test_report_base.html:163 +#: report/templates/report/inventree_build_order_report.html:98 +#: report/templates/report/inventree_purchase_order_report.html:40 +#: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_test_report.html:84 +#: report/templates/report/inventree_test_report.html:163 msgid "Part image" msgstr "" @@ -4316,15 +4256,15 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:910 -#: order/models.py:2008 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:804 -#: stock/models.py:805 stock/serializers.py:1100 +#: company/templates/company/company_base.html:92 order/models.py:938 +#: order/models.py:2032 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:819 +#: stock/models.py:820 stock/serializers.py:1216 #: 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:296 -#: templates/js/translated/sales_order.js:784 +#: templates/js/translated/return_order.js:295 +#: templates/js/translated/sales_order.js:820 #: templates/js/translated/stock.js:2959 #: templates/js/translated/table_filters.js:808 msgid "Customer" @@ -4334,10 +4274,10 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:124 order/models.py:341 +#: 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:221 +#: order/templates/order/sales_order_base.html:225 msgid "Address" msgstr "" @@ -4346,7 +4286,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:528 +#: part/templates/part/part_base.html:527 msgid "Remove Image" msgstr "" @@ -4355,19 +4295,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:530 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:560 +#: part/templates/part/part_base.html:559 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:614 +#: part/templates/part/part_base.html:613 msgid "Download Image" msgstr "" @@ -4520,7 +4460,7 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:454 +#: company/templates/company/supplier_part.html:97 order/api.py:458 msgid "Internal Part" msgstr "" @@ -4530,7 +4470,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:821 +#: part/admin.py:122 part/serializers.py:824 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4550,8 +4490,8 @@ msgstr "" msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:206 -#: templates/js/translated/part.js:1422 +#: company/templates/company/manufacturer_part.html:196 +#: templates/js/translated/part.js:1423 msgid "Add Parameter" msgstr "" @@ -4579,15 +4519,6 @@ msgstr "" msgid "Addresses" msgstr "" -#: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:448 -#: stock/models.py:762 stock/templates/stock/item_base.html:233 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2279 -msgid "Supplier Part" -msgstr "" - #: company/templates/company/supplier_part.html:50 #: templates/js/translated/company.js:1526 msgid "Supplier part actions" @@ -4630,11 +4561,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 part/bom.py:279 -#: part/bom.py:311 part/serializers.py:509 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 +#: part/bom.py:311 part/serializers.py:511 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1787 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1851 -#: templates/js/translated/purchase_order.js:2029 +#: templates/js/translated/purchase_order.js:1850 +#: templates/js/translated/purchase_order.js:2028 msgid "SKU" msgstr "" @@ -4643,12 +4574,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:199 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:200 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 #: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4680,15 +4611,15 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:820 part/stocktake.py:223 +#: part/serializers.py:823 part/stocktake.py:224 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 -#: stock/serializers.py:787 stock/serializers.py:951 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:68 +#: stock/serializers.py:918 stock/serializers.py:1082 #: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:184 -#: stock/templates/stock/location.html:196 +#: stock/templates/stock/location.html:191 +#: stock/templates/stock/location.html:203 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1061 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2766 #: users/models.py:206 msgid "Stock Items" @@ -4715,134 +4646,56 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:51 templates/js/translated/search.js:192 -msgid "Companies" -msgstr "" - #: company/views.py:52 msgid "New Company" msgstr "" -#: label/api.py:247 -msgid "Error printing label" -msgstr "" - -#: label/models.py:120 -msgid "Label name" -msgstr "" - -#: label/models.py:128 -msgid "Label description" -msgstr "" - -#: label/models.py:136 -msgid "Label" -msgstr "" - -#: label/models.py:137 -msgid "Label template file" -msgstr "" - -#: label/models.py:143 part/models.py:3494 report/models.py:324 -#: templates/js/translated/part.js:2900 -#: templates/js/translated/table_filters.js:481 -msgid "Enabled" -msgstr "" - -#: label/models.py:144 -msgid "Label template is enabled" -msgstr "" - -#: label/models.py:149 -msgid "Width [mm]" -msgstr "" - -#: label/models.py:150 -msgid "Label width, specified in mm" -msgstr "" - -#: label/models.py:156 -msgid "Height [mm]" -msgstr "" - -#: label/models.py:157 -msgid "Label height, specified in mm" -msgstr "" - -#: label/models.py:163 report/models.py:317 -msgid "Filename Pattern" -msgstr "" - -#: label/models.py:164 -msgid "Pattern for generating label filenames" -msgstr "" - -#: label/models.py:313 label/models.py:352 label/models.py:377 -#: label/models.py:412 -msgid "Query filters (comma-separated list of key=value pairs)" -msgstr "" - -#: label/models.py:314 label/models.py:353 label/models.py:378 -#: label/models.py:413 report/models.py:345 report/models.py:496 -#: report/models.py:532 report/models.py:568 report/models.py:750 -msgid "Filters" -msgstr "" - -#: label/templates/label/part/part_label.html:31 -#: label/templates/label/stockitem/qr.html:21 -#: label/templates/label/stocklocation/qr.html:20 -#: templates/allauth_2fa/setup.html:18 -msgid "QR Code" -msgstr "" - -#: label/templates/label/part/part_label_code128.html:31 -#: label/templates/label/stocklocation/qr_and_text.html:31 -#: templates/qr_code.html:7 -msgid "QR code" -msgstr "" - -#: machine/machine_types/label_printer.py:217 -msgid "Copies" +#: generic/states/tests.py:18 order/status_codes.py:13 +msgid "Placed" msgstr "" #: machine/machine_types/label_printer.py:218 +msgid "Copies" +msgstr "" + +#: machine/machine_types/label_printer.py:219 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:234 order/api.py:1511 -#: templates/js/translated/sales_order.js:1042 +#: machine/machine_types/label_printer.py:235 order/api.py:1467 +#: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:237 +#: machine/machine_types/label_printer.py:238 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:245 +#: machine/machine_types/label_printer.py:246 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:252 +#: machine/machine_types/label_printer.py:253 msgid "Scope the printer to a specific location" msgstr "" @@ -4902,18 +4755,19 @@ msgstr "" msgid "Config type" msgstr "" -#: order/admin.py:30 order/models.py:89 -#: report/templates/report/inventree_po_report_base.html:31 -#: report/templates/report/inventree_so_report_base.html:31 +#: 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:2126 -#: templates/js/translated/sales_order.js:1847 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" -#: order/api.py:157 order/templates/order/order_base.html:118 +#: order/api.py:157 order/serializers.py:90 +#: order/templates/order/order_base.html:118 #: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/sales_order_base.html:122 msgid "Order Status" msgstr "" @@ -4926,567 +4780,623 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:433 order/api.py:813 order/models.py:1382 order/models.py:1489 -#: order/models.py:1535 order/models.py:1649 order/models.py:1803 -#: order/models.py:2207 order/models.py:2258 -#: templates/js/translated/sales_order.js:1488 +#: order/api.py:435 order/api.py:801 order/models.py:1395 order/models.py:1504 +#: order/models.py:1550 order/models.py:1664 order/models.py:1818 +#: order/models.py:2231 order/models.py:2282 +#: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:437 order/api.py:834 +#: order/api.py:439 order/api.py:822 msgid "Order Complete" msgstr "" -#: order/api.py:458 +#: order/api.py:462 msgid "Order Pending" msgstr "" -#: order/api.py:1505 order/models.py:1383 order/models.py:1490 -#: order/templates/order/order_base.html:9 +#: order/api.py:1461 order/models.py:380 order/models.py:1396 +#: order/models.py:1505 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 -#: report/templates/report/inventree_po_report_base.html:14 -#: stock/templates/stock/item_base.html:176 +#: report/templates/report/inventree_purchase_order_report.html:14 +#: stock/serializers.py:118 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1746 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:1674 -#: templates/js/translated/stock.js:2259 templates/js/translated/stock.js:2907 +#: templates/js/translated/purchase_order.js:1673 +#: templates/js/translated/stock.js:2260 templates/js/translated/stock.js:2907 msgid "Purchase Order" msgstr "" -#: order/api.py:1509 order/models.py:2208 order/models.py:2259 -#: order/templates/order/return_order_base.html:9 +#: order/api.py:1465 order/models.py:1981 order/models.py:2232 +#: order/models.py:2283 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:13 -#: templates/js/translated/return_order.js:281 +#: report/templates/report/inventree_return_order_report.html:13 +#: templates/js/translated/return_order.js:280 #: templates/js/translated/stock.js:2941 msgid "Return Order" msgstr "" -#: order/models.py:90 +#: order/models.py:91 msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:96 order/serializers.py:70 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:99 order/serializers.py:71 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:247 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:278 +#: order/models.py:290 msgid "Order description (optional)" msgstr "" -#: order/models.py:287 +#: order/models.py:299 msgid "Select project code for this order" msgstr "" -#: order/models.py:291 order/models.py:1288 order/models.py:1702 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 msgid "Link to external page" msgstr "" -#: order/models.py:299 +#: order/models.py:311 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:313 +#: order/models.py:325 msgid "Created By" msgstr "" -#: order/models.py:321 +#: order/models.py:333 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:332 +#: order/models.py:344 msgid "Point of contact for this order" msgstr "" -#: order/models.py:342 +#: order/models.py:354 msgid "Company address for this order" msgstr "" -#: order/models.py:443 order/models.py:899 +#: order/models.py:464 order/models.py:927 msgid "Order reference" msgstr "" -#: order/models.py:451 order/models.py:923 +#: order/models.py:472 order/models.py:951 msgid "Purchase order status" msgstr "" -#: order/models.py:466 +#: order/models.py:487 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:477 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1703 +#: order/models.py:498 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1702 msgid "Supplier Reference" msgstr "" -#: order/models.py:478 +#: order/models.py:499 msgid "Supplier order reference code" msgstr "" -#: order/models.py:487 +#: order/models.py:508 msgid "received by" msgstr "" -#: order/models.py:493 order/models.py:2034 +#: order/models.py:514 order/models.py:2058 msgid "Issue Date" msgstr "" -#: order/models.py:494 order/models.py:2035 +#: order/models.py:515 order/models.py:2059 msgid "Date order was issued" msgstr "" -#: order/models.py:501 order/models.py:2042 +#: order/models.py:522 order/models.py:2066 msgid "Date order was completed" msgstr "" -#: order/models.py:545 +#: order/models.py:566 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:739 +#: order/models.py:760 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:911 +#: order/models.py:939 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:934 order/models.py:2027 +#: order/models.py:962 order/models.py:2051 msgid "Customer Reference " msgstr "" -#: order/models.py:935 order/models.py:2028 +#: order/models.py:963 order/models.py:2052 msgid "Customer order reference code" msgstr "" -#: order/models.py:939 order/models.py:1656 -#: templates/js/translated/sales_order.js:843 -#: templates/js/translated/sales_order.js:1024 +#: order/models.py:967 order/models.py:1671 +#: templates/js/translated/sales_order.js:879 +#: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:948 +#: order/models.py:976 msgid "shipped by" msgstr "" -#: order/models.py:999 -msgid "Order cannot be completed as no parts have been assigned" +#: order/models.py:1025 +msgid "Order is already complete" msgstr "" -#: order/models.py:1004 +#: order/models.py:1028 +msgid "Order is already cancelled" +msgstr "" + +#: order/models.py:1032 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1008 templates/js/translated/sales_order.js:506 +#: order/models.py:1036 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1013 +#: order/models.py:1041 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1260 +#: order/models.py:1273 msgid "Item quantity" msgstr "" -#: order/models.py:1277 +#: order/models.py:1290 msgid "Line item reference" msgstr "" -#: order/models.py:1284 +#: order/models.py:1297 msgid "Line item notes" msgstr "" -#: order/models.py:1296 +#: order/models.py:1309 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1317 +#: order/models.py:1330 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1323 +#: order/models.py:1336 msgid "Context" msgstr "" -#: order/models.py:1324 +#: order/models.py:1337 msgid "Additional context for this line" msgstr "" -#: order/models.py:1334 +#: order/models.py:1347 msgid "Unit price" msgstr "" -#: order/models.py:1367 +#: order/models.py:1380 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1374 +#: order/models.py:1387 msgid "deleted" msgstr "" -#: order/models.py:1402 +#: order/models.py:1415 msgid "Supplier part" msgstr "" -#: order/models.py:1409 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1869 templates/js/translated/part.js:1901 +#: order/models.py:1422 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1870 templates/js/translated/part.js:1902 #: templates/js/translated/purchase_order.js:1306 -#: templates/js/translated/purchase_order.js:2170 -#: templates/js/translated/return_order.js:764 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/return_order.js:763 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1410 +#: order/models.py:1423 msgid "Number of items received" msgstr "" -#: order/models.py:1418 stock/models.py:923 stock/serializers.py:400 +#: order/models.py:1431 stock/models.py:938 stock/serializers.py:556 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2311 msgid "Purchase Price" msgstr "" -#: order/models.py:1419 +#: order/models.py:1432 msgid "Unit purchase price" msgstr "" -#: order/models.py:1434 +#: order/models.py:1447 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1523 +#: order/models.py:1538 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1528 +#: order/models.py:1543 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1554 part/templates/part/part_pricing.html:107 +#: order/models.py:1569 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:1555 +#: order/models.py:1570 msgid "Unit sale price" msgstr "" -#: order/models.py:1565 +#: order/models.py:1579 order/status_codes.py:43 +#: 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:1580 msgid "Shipped quantity" msgstr "" -#: order/models.py:1657 +#: order/models.py:1672 msgid "Date of shipment" msgstr "" -#: order/models.py:1663 templates/js/translated/sales_order.js:1036 +#: order/models.py:1678 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1664 +#: order/models.py:1679 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1672 +#: order/models.py:1687 msgid "Checked By" msgstr "" -#: order/models.py:1673 +#: order/models.py:1688 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1680 order/models.py:1893 order/serializers.py:1350 -#: order/serializers.py:1460 templates/js/translated/model_renderers.js:448 +#: order/models.py:1695 order/models.py:1908 order/serializers.py:1342 +#: order/serializers.py:1452 templates/js/translated/model_renderers.js:454 msgid "Shipment" msgstr "" -#: order/models.py:1681 +#: order/models.py:1696 msgid "Shipment number" msgstr "" -#: order/models.py:1689 +#: order/models.py:1704 msgid "Tracking Number" msgstr "" -#: order/models.py:1690 +#: order/models.py:1705 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1697 +#: order/models.py:1712 msgid "Invoice Number" msgstr "" -#: order/models.py:1698 +#: order/models.py:1713 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1718 +#: order/models.py:1733 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1721 +#: order/models.py:1736 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1839 order/models.py:1841 +#: order/models.py:1854 order/models.py:1856 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1848 +#: order/models.py:1863 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1851 +#: order/models.py:1866 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1854 +#: order/models.py:1869 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1873 order/serializers.py:1227 +#: order/models.py:1888 order/serializers.py:1219 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1876 +#: order/models.py:1891 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1877 plugin/base/barcodes/api.py:481 +#: order/models.py:1892 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1885 +#: order/models.py:1900 msgid "Line" msgstr "" -#: order/models.py:1894 +#: order/models.py:1909 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1907 order/models.py:2215 -#: templates/js/translated/return_order.js:722 +#: order/models.py:1922 order/models.py:2239 +#: templates/js/translated/return_order.js:721 msgid "Item" msgstr "" -#: order/models.py:1908 +#: order/models.py:1923 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1917 +#: order/models.py:1932 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1997 +#: order/models.py:2021 msgid "Return Order reference" msgstr "" -#: order/models.py:2009 +#: order/models.py:2033 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2021 +#: order/models.py:2045 msgid "Return order status" msgstr "" -#: order/models.py:2200 +#: order/models.py:2224 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2216 +#: order/models.py:2240 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2222 +#: order/models.py:2246 msgid "Received Date" msgstr "" -#: order/models.py:2223 +#: order/models.py:2247 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2234 templates/js/translated/return_order.js:733 +#: order/models.py:2258 templates/js/translated/return_order.js:732 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2235 +#: order/models.py:2259 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2242 +#: order/models.py:2266 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:283 +#: order/serializers.py:79 order/templates/order/po_sidebar.html:5 +#: order/templates/order/return_order_detail.html:18 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_purchase_order_report.html:22 +#: report/templates/report/inventree_return_order_report.html:19 +#: report/templates/report/inventree_sales_order_report.html:22 +msgid "Line Items" +msgstr "" + +#: order/serializers.py:83 +msgid "Completed Lines" +msgstr "" + +#: order/serializers.py:286 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:298 order/serializers.py:1243 +#: order/serializers.py:301 order/serializers.py:1235 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:308 order/serializers.py:1253 +#: order/serializers.py:311 order/serializers.py:1245 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:436 +#: order/serializers.py:439 msgid "Order is not open" msgstr "" -#: order/serializers.py:457 +#: order/serializers.py:460 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:459 +#: order/serializers.py:462 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:472 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:475 +#: order/serializers.py:478 msgid "Merge Items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:480 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:495 +#: order/serializers.py:498 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:501 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:509 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:507 +#: order/serializers.py:510 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:546 order/serializers.py:1321 +#: order/serializers.py:549 order/serializers.py:1313 msgid "Line Item" msgstr "" -#: order/serializers.py:552 +#: order/serializers.py:555 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:562 order/serializers.py:670 order/serializers.py:1676 +#: order/serializers.py:565 order/serializers.py:673 order/serializers.py:1657 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:578 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:581 templates/js/translated/purchase_order.js:1130 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:586 templates/js/translated/purchase_order.js:1154 +#: order/serializers.py:589 templates/js/translated/purchase_order.js:1154 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:597 templates/js/translated/barcode.js:52 +#: order/serializers.py:600 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:598 +#: order/serializers.py:601 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:614 +#: order/serializers.py:617 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:638 +#: order/serializers.py:641 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:686 order/serializers.py:1692 +#: order/serializers.py:689 order/serializers.py:1673 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:702 +#: order/serializers.py:705 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:713 +#: order/serializers.py:716 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1070 +#: order/serializers.py:1062 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1130 +#: order/serializers.py:1122 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1191 order/serializers.py:1330 +#: order/serializers.py:1183 order/serializers.py:1322 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1210 +#: order/serializers.py:1202 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1340 +#: order/serializers.py:1332 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1362 order/serializers.py:1468 +#: order/serializers.py:1354 order/serializers.py:1460 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1365 order/serializers.py:1471 +#: order/serializers.py:1357 order/serializers.py:1463 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1412 +#: order/serializers.py:1404 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1419 +#: order/serializers.py:1411 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1646 +#: order/serializers.py:1627 msgid "Return order line item" msgstr "" -#: order/serializers.py:1652 +#: order/serializers.py:1633 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1655 +#: order/serializers.py:1636 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1684 +#: order/serializers.py:1665 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1762 +#: order/serializers.py:1743 msgid "Line price currency" msgstr "" +#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +msgid "Lost" +msgstr "Изгубен" + +#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +msgid "Returned" +msgstr "Върнат" + +#: order/status_codes.py:40 order/status_codes.py:67 +msgid "In Progress" +msgstr "Изпълнява се" + +#: order/status_codes.py:85 +msgid "Return" +msgstr "" + +#: order/status_codes.py:88 +msgid "Repair" +msgstr "" + +#: order/status_codes.py:91 +msgid "Replace" +msgstr "" + +#: order/status_codes.py:94 +msgid "Refund" +msgstr "" + +#: order/status_codes.py:97 +msgid "Reject" +msgstr "" + #: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" @@ -5553,7 +5463,7 @@ msgstr "" #: order/templates/order/order_base.html:84 #: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:97 msgid "Complete Order" msgstr "" @@ -5563,13 +5473,13 @@ msgstr "" #: order/templates/order/order_base.html:106 #: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:106 +#: order/templates/order/sales_order_base.html:110 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:111 +#: order/templates/order/sales_order_base.html:115 msgid "Order Description" msgstr "" @@ -5578,19 +5488,19 @@ msgid "No suppplier information available" msgstr "" #: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:157 +#: order/templates/order/sales_order_base.html:161 msgid "Completed Line Items" msgstr "" #: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:163 -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:167 +#: order/templates/order/sales_order_base.html:177 msgid "Incomplete" msgstr "" #: order/templates/order/order_base.html:179 #: order/templates/order/return_order_base.html:157 -#: report/templates/report/inventree_build_order_base.html:121 +#: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" @@ -5600,15 +5510,15 @@ msgstr "" #: order/templates/order/order_base.html:228 #: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/sales_order_base.html:243 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:318 +#: order/templates/order/order_base.html:314 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:330 +#: order/templates/order/order_base.html:326 msgid "Link Barcode to Purchase Order" msgstr "" @@ -5662,11 +5572,11 @@ 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:529 -#: templates/js/translated/build.js:1626 +#: templates/js/translated/build.js:1629 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1236 -#: templates/js/translated/return_order.js:506 -#: templates/js/translated/sales_order.js:1109 +#: templates/js/translated/return_order.js:505 +#: templates/js/translated/sales_order.js:1145 #: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -5708,15 +5618,6 @@ msgstr "" msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/po_sidebar.html:5 -#: order/templates/order/return_order_detail.html:18 -#: order/templates/order/so_sidebar.html:5 -#: report/templates/report/inventree_po_report_base.html:22 -#: report/templates/report/inventree_return_order_report_base.html:19 -#: report/templates/report/inventree_so_report_base.html:22 -msgid "Line Items" -msgstr "" - #: order/templates/order/po_sidebar.html:7 msgid "Received Stock" msgstr "" @@ -5729,7 +5630,7 @@ msgstr "" #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 #: templates/js/translated/purchase_order.js:414 -#: templates/js/translated/return_order.js:459 +#: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" msgstr "" @@ -5778,30 +5679,30 @@ msgid "Print packing list" msgstr "" #: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:151 -#: templates/js/translated/return_order.js:309 -#: templates/js/translated/sales_order.js:797 +#: order/templates/order/sales_order_base.html:155 +#: 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:235 +#: order/templates/order/sales_order_base.html:239 #: 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:1072 -#: templates/js/translated/purchase_order.js:1753 -#: templates/js/translated/return_order.js:381 -#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/part.js:1073 +#: templates/js/translated/purchase_order.js:1752 +#: 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:263 +#: order/templates/order/return_order_base.html:259 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:275 +#: order/templates/order/return_order_base.html:271 msgid "Link Barcode to Return Order" msgstr "" @@ -5819,25 +5720,30 @@ msgid "Ship Items" msgstr "" #: order/templates/order/sales_order_base.html:92 -#: templates/js/translated/sales_order.js:484 +#: order/templates/order/sales_order_base.html:93 +msgid "Mark As Shipped" +msgstr "" + +#: order/templates/order/sales_order_base.html:96 +#: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:131 +#: order/templates/order/sales_order_base.html:135 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:169 +#: order/templates/order/sales_order_base.html:173 #: 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:312 +#: order/templates/order/sales_order_base.html:321 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:324 +#: order/templates/order/sales_order_base.html:333 msgid "Link Barcode to Sales Order" msgstr "" @@ -5881,34 +5787,34 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:39 part/admin.py:404 part/models.py:3921 part/stocktake.py:218 -#: stock/admin.py:153 +#: part/admin.py:39 part/admin.py:398 part/models.py:3944 part/stocktake.py:219 +#: stock/admin.py:152 msgid "Part ID" msgstr "" -#: part/admin.py:41 part/admin.py:411 part/models.py:3922 part/stocktake.py:219 -#: stock/admin.py:157 +#: part/admin.py:41 part/admin.py:405 part/models.py:3945 part/stocktake.py:220 +#: stock/admin.py:156 msgid "Part Name" msgstr "" -#: part/admin.py:45 part/stocktake.py:220 +#: part/admin.py:45 part/stocktake.py:221 msgid "Part Description" msgstr "" -#: part/admin.py:48 part/models.py:904 part/templates/part/part_base.html:269 -#: report/templates/report/inventree_slr_report.html:103 -#: templates/js/translated/part.js:1226 templates/js/translated/part.js:2341 -#: templates/js/translated/stock.js:2035 +#: part/admin.py:48 part/models.py:940 part/templates/part/part_base.html:269 +#: report/templates/report/inventree_stock_location_report.html:103 +#: templates/js/translated/part.js:1227 templates/js/translated/part.js:2341 +#: templates/js/translated/stock.js:2036 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:913 part/templates/part/part_base.html:277 -#: report/models.py:195 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:949 part/templates/part/part_base.html:277 +#: report/models.py:162 templates/js/translated/part.js:1232 #: templates/js/translated/part.js:2347 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:317 part/models.py:886 +#: part/admin.py:53 part/admin.py:319 part/models.py:922 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5917,15 +5823,15 @@ msgstr "" msgid "Part Image" msgstr "" -#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 +#: part/admin.py:63 part/admin.py:302 part/stocktake.py:222 msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 +#: part/admin.py:67 part/admin.py:304 part/stocktake.py:223 msgid "Category Name" msgstr "" -#: part/admin.py:71 part/admin.py:314 +#: part/admin.py:71 part/admin.py:316 msgid "Default Location ID" msgstr "" @@ -5933,11 +5839,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:872 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:908 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1000 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1036 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5945,36 +5851,36 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:231 -#: templates/js/translated/part.js:714 templates/js/translated/part.js:2152 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:235 +#: templates/js/translated/part.js:715 templates/js/translated/part.js:2153 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3080 part/models.py:3094 -#: templates/js/translated/part.js:969 +#: part/admin.py:155 part/models.py:3088 part/models.py:3102 +#: templates/js/translated/part.js:970 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3087 part/models.py:3101 -#: templates/js/translated/part.js:979 +#: part/admin.py:158 part/models.py:3095 part/models.py:3109 +#: templates/js/translated/part.js:980 msgid "Maximum Cost" msgstr "" -#: part/admin.py:306 part/admin.py:393 stock/admin.py:58 stock/admin.py:211 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 msgid "Parent ID" msgstr "" -#: part/admin.py:310 part/admin.py:400 stock/admin.py:62 +#: part/admin.py:312 part/admin.py:394 stock/admin.py:61 msgid "Parent Name" msgstr "" -#: part/admin.py:318 part/templates/part/category.html:88 +#: part/admin.py:320 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:323 part/models.py:391 part/serializers.py:117 -#: part/serializers.py:272 part/serializers.py:391 +#: part/admin.py:325 part/models.py:396 part/serializers.py:116 +#: part/serializers.py:259 part/serializers.py:378 #: 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/templates/part/category_sidebar.html:9 @@ -5985,125 +5891,129 @@ msgstr "" msgid "Parts" msgstr "" -#: part/admin.py:384 +#: part/admin.py:378 msgid "BOM Level" msgstr "" -#: part/admin.py:387 +#: part/admin.py:381 msgid "BOM Item ID" msgstr "" -#: part/admin.py:397 +#: part/admin.py:391 msgid "Parent IPN" msgstr "" -#: part/admin.py:408 part/models.py:3923 +#: part/admin.py:402 part/models.py:3946 msgid "Part IPN" msgstr "" -#: part/admin.py:421 part/serializers.py:1261 +#: part/admin.py:415 part/serializers.py:1266 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:426 part/serializers.py:1276 +#: part/admin.py:420 part/serializers.py:1281 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:119 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:121 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:138 stock/api.py:284 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:138 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:156 stock/api.py:302 +#: part/api.py:141 stock/api.py:330 msgid "Cascade" msgstr "" -#: part/api.py:158 +#: part/api.py:143 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:178 +#: part/api.py:163 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:180 +#: part/api.py:165 msgid "Filter by parent category" msgstr "" -#: part/api.py:213 +#: part/api.py:198 msgid "Exclude Tree" msgstr "" -#: part/api.py:215 +#: part/api.py:200 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:461 +#: part/api.py:433 msgid "Has Results" msgstr "" -#: part/api.py:628 +#: part/api.py:600 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:646 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:662 +#: part/api.py:634 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:746 +#: part/api.py:718 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:893 +#: part/api.py:865 msgid "Valid" msgstr "" -#: part/api.py:894 +#: part/api.py:866 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:900 +#: part/api.py:872 msgid "This option must be selected" msgstr "" -#: part/api.py:1561 part/models.py:896 part/models.py:3386 part/models.py:3866 -#: part/serializers.py:406 part/serializers.py:1117 -#: part/templates/part/part_base.html:260 stock/api.py:745 +#: part/api.py:1089 +msgid "BOM Valid" +msgstr "" + +#: part/api.py:1492 part/models.py:932 part/models.py:3374 part/models.py:3889 +#: part/serializers.py:393 part/serializers.py:1122 +#: part/templates/part/part_base.html:260 stock/api.py:775 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2377 msgid "Category" msgstr "" -#: part/api.py:1849 +#: part/api.py:1780 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:101 part/models.py:939 +#: part/bom.py:170 part/models.py:104 part/models.py:975 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:822 +#: part/bom.py:171 part/serializers.py:825 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Цялостна наличност" @@ -6112,1040 +6022,1058 @@ msgstr "Цялостна наличност" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:82 part/models.py:3867 part/templates/part/category.html:16 +#: part/models.py:85 part/models.py:3890 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:83 part/templates/part/category.html:136 +#: part/models.py:86 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:102 +#: part/models.py:105 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:107 stock/models.py:165 templates/js/translated/part.js:2810 +#: part/models.py:110 stock/models.py:174 templates/js/translated/part.js:2810 #: templates/js/translated/stock.js:2772 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:109 +#: part/models.py:112 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:118 +#: part/models.py:121 msgid "Default keywords" msgstr "" -#: part/models.py:119 +#: part/models.py:122 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:125 stock/models.py:89 stock/models.py:148 +#: part/models.py:128 stock/models.py:86 stock/models.py:157 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:126 stock/models.py:149 +#: part/models.py:129 stock/models.py:158 msgid "Icon (optional)" msgstr "" -#: part/models.py:148 +#: part/models.py:151 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:484 +#: part/models.py:485 +msgid "Cannot delete this part as it is still active" +msgstr "" + +#: part/models.py:490 +msgid "Cannot delete this part as it is used in an assembly" +msgstr "" + +#: part/models.py:528 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:532 part/models.py:539 +#: part/models.py:576 part/models.py:583 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:551 +#: part/models.py:595 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:616 +#: part/models.py:658 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:696 +#: part/models.py:736 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:801 +#: part/models.py:837 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 +#: part/models.py:847 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:826 +#: part/models.py:862 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:855 part/models.py:3922 +#: part/models.py:891 part/models.py:3945 msgid "Part name" msgstr "" -#: part/models.py:860 +#: part/models.py:896 msgid "Is Template" msgstr "" -#: part/models.py:861 +#: part/models.py:897 msgid "Is this part a template part?" msgstr "" -#: part/models.py:871 +#: part/models.py:907 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:879 +#: part/models.py:915 msgid "Part description (optional)" msgstr "" -#: part/models.py:887 +#: part/models.py:923 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:897 +#: part/models.py:933 msgid "Part category" msgstr "" -#: part/models.py:905 +#: part/models.py:941 msgid "Internal Part Number" msgstr "" -#: part/models.py:912 +#: part/models.py:948 msgid "Part revision or version number" msgstr "" -#: part/models.py:937 +#: part/models.py:973 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:983 part/templates/part/part_base.html:376 +#: part/models.py:1019 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:984 +#: part/models.py:1020 msgid "Default supplier part" msgstr "" -#: part/models.py:991 +#: part/models.py:1027 msgid "Default Expiry" msgstr "" -#: part/models.py:992 +#: part/models.py:1028 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1001 +#: part/models.py:1037 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1010 +#: part/models.py:1046 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1017 +#: part/models.py:1053 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1023 +#: part/models.py:1059 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1029 +#: part/models.py:1065 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1035 +#: part/models.py:1071 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1041 +#: part/models.py:1077 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1045 +#: part/models.py:1081 msgid "Is this part active?" msgstr "" -#: part/models.py:1051 +#: part/models.py:1087 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1057 +#: part/models.py:1093 msgid "BOM checksum" msgstr "" -#: part/models.py:1058 +#: part/models.py:1094 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1066 +#: part/models.py:1102 msgid "BOM checked by" msgstr "" -#: part/models.py:1071 +#: part/models.py:1107 msgid "BOM checked date" msgstr "" -#: part/models.py:1087 +#: part/models.py:1123 msgid "Creation User" msgstr "" -#: part/models.py:1097 +#: part/models.py:1133 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1102 part/templates/part/part_base.html:339 +#: part/models.py:1138 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2471 msgid "Last Stocktake" msgstr "" -#: part/models.py:1975 +#: part/models.py:2011 msgid "Sell multiple" msgstr "" -#: part/models.py:2994 +#: part/models.py:3002 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3010 +#: part/models.py:3018 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3011 +#: part/models.py:3019 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3017 +#: part/models.py:3025 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3026 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3024 +#: part/models.py:3032 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3025 +#: part/models.py:3033 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3031 +#: part/models.py:3039 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3032 +#: part/models.py:3040 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3038 +#: part/models.py:3046 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3039 +#: part/models.py:3047 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3045 +#: part/models.py:3053 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3046 +#: part/models.py:3054 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3052 +#: part/models.py:3060 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3053 +#: part/models.py:3061 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3059 +#: part/models.py:3067 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3060 +#: part/models.py:3068 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3066 +#: part/models.py:3074 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3067 +#: part/models.py:3075 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3073 +#: part/models.py:3081 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3074 +#: part/models.py:3082 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3081 +#: part/models.py:3089 msgid "Override minimum cost" msgstr "" -#: part/models.py:3088 +#: part/models.py:3096 msgid "Override maximum cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3103 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3110 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3108 +#: part/models.py:3116 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3109 +#: part/models.py:3117 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3115 +#: part/models.py:3123 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3116 +#: part/models.py:3124 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3122 +#: part/models.py:3130 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3123 +#: part/models.py:3131 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3129 +#: part/models.py:3137 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3130 +#: part/models.py:3138 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3149 +#: part/models.py:3157 msgid "Part for stocktake" msgstr "" -#: part/models.py:3154 +#: part/models.py:3162 msgid "Item Count" msgstr "" -#: part/models.py:3155 +#: part/models.py:3163 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3163 +#: part/models.py:3171 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3167 part/models.py:3250 +#: part/models.py:3175 part/models.py:3258 #: part/templates/part/part_scheduling.html:13 -#: report/templates/report/inventree_test_report_base.html:106 +#: 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:1085 templates/js/translated/pricing.js:826 +#: templates/js/translated/part.js:1086 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1732 +#: templates/js/translated/purchase_order.js:1731 #: templates/js/translated/stock.js:2821 msgid "Date" msgstr "" -#: part/models.py:3168 +#: part/models.py:3176 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3176 +#: part/models.py:3184 msgid "Additional notes" msgstr "" -#: part/models.py:3186 +#: part/models.py:3194 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3192 +#: part/models.py:3200 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3193 +#: part/models.py:3201 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3199 +#: part/models.py:3207 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3200 +#: part/models.py:3208 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3256 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3264 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3257 +#: part/models.py:3265 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3262 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3270 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3263 +#: part/models.py:3271 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3273 +#: part/models.py:3281 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3435 +#: part/models.py:3423 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3446 +#: part/models.py:3444 part/models.py:3608 +msgid "Choices must be unique" +msgstr "" + +#: part/models.py:3455 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3457 +#: part/models.py:3466 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3474 templates/js/translated/part.js:2879 +#: part/models.py:3483 templates/js/translated/part.js:2880 msgid "Test Name" msgstr "" -#: part/models.py:3475 +#: part/models.py:3484 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3481 +#: part/models.py:3490 msgid "Test Key" msgstr "" -#: part/models.py:3482 +#: part/models.py:3491 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3489 +#: part/models.py:3498 msgid "Test Description" msgstr "" -#: part/models.py:3490 +#: part/models.py:3499 msgid "Enter description for this test" msgstr "" -#: part/models.py:3494 +#: part/models.py:3503 report/models.py:209 +#: templates/js/translated/part.js:2901 +#: templates/js/translated/table_filters.js:481 +msgid "Enabled" +msgstr "" + +#: part/models.py:3503 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3499 templates/js/translated/part.js:2908 +#: part/models.py:3508 templates/js/translated/part.js:2909 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3500 +#: part/models.py:3509 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3505 templates/js/translated/part.js:2916 +#: part/models.py:3514 templates/js/translated/part.js:2917 msgid "Requires Value" msgstr "" -#: part/models.py:3506 +#: part/models.py:3515 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3511 templates/js/translated/part.js:2923 +#: part/models.py:3520 templates/js/translated/part.js:2924 msgid "Requires Attachment" msgstr "" -#: part/models.py:3513 +#: part/models.py:3522 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3560 +#: part/models.py:3528 part/models.py:3667 templates/js/translated/part.js:1637 +msgid "Choices" +msgstr "" + +#: part/models.py:3529 +msgid "Valid choices for this test (comma-separated)" +msgstr "" + +#: part/models.py:3583 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3565 +#: part/models.py:3588 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3585 -msgid "Choices must be unique" -msgstr "" - -#: part/models.py:3602 +#: part/models.py:3625 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3617 +#: part/models.py:3640 msgid "Parameter Name" msgstr "" -#: part/models.py:3624 +#: part/models.py:3647 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3632 +#: part/models.py:3655 msgid "Parameter description" msgstr "" -#: part/models.py:3638 templates/js/translated/part.js:1627 +#: part/models.py:3661 templates/js/translated/part.js:1628 #: templates/js/translated/table_filters.js:825 msgid "Checkbox" msgstr "" -#: part/models.py:3639 +#: part/models.py:3662 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3644 templates/js/translated/part.js:1636 -msgid "Choices" -msgstr "" - -#: part/models.py:3645 +#: part/models.py:3668 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3722 +#: part/models.py:3745 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3765 +#: part/models.py:3788 msgid "Parent Part" msgstr "" -#: part/models.py:3773 part/models.py:3874 part/models.py:3875 +#: part/models.py:3796 part/models.py:3897 part/models.py:3898 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3778 +#: part/models.py:3801 msgid "Data" msgstr "" -#: part/models.py:3779 +#: part/models.py:3802 msgid "Parameter Value" msgstr "" -#: part/models.py:3881 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3904 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3882 +#: part/models.py:3905 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3920 +#: part/models.py:3943 msgid "Part ID or part name" msgstr "" -#: part/models.py:3921 +#: part/models.py:3944 msgid "Unique part ID value" msgstr "" -#: part/models.py:3923 +#: part/models.py:3946 msgid "Part IPN value" msgstr "" -#: part/models.py:3924 +#: part/models.py:3947 msgid "Level" msgstr "" -#: part/models.py:3924 +#: part/models.py:3947 msgid "BOM level" msgstr "" -#: part/models.py:4014 +#: part/models.py:4037 msgid "Select parent part" msgstr "" -#: part/models.py:4024 +#: part/models.py:4047 msgid "Sub part" msgstr "" -#: part/models.py:4025 +#: part/models.py:4048 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4036 +#: part/models.py:4059 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4042 +#: part/models.py:4065 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4048 +#: part/models.py:4071 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4055 part/templates/part/upload_bom.html:55 +#: part/models.py:4078 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4056 +#: part/models.py:4079 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4063 +#: part/models.py:4086 msgid "BOM item reference" msgstr "" -#: part/models.py:4071 +#: part/models.py:4094 msgid "BOM item notes" msgstr "" -#: part/models.py:4077 +#: part/models.py:4100 msgid "Checksum" msgstr "" -#: part/models.py:4078 +#: part/models.py:4101 msgid "BOM line checksum" msgstr "" -#: part/models.py:4083 templates/js/translated/table_filters.js:174 +#: part/models.py:4106 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4084 +#: part/models.py:4107 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4089 part/templates/part/upload_bom.html:57 +#: part/models.py:4112 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:4090 +#: part/models.py:4113 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4095 part/templates/part/upload_bom.html:56 +#: part/models.py:4118 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:4096 +#: part/models.py:4119 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4181 stock/models.py:647 +#: part/models.py:4204 stock/models.py:662 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4191 part/models.py:4193 +#: part/models.py:4214 part/models.py:4216 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4333 +#: part/models.py:4354 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4354 +#: part/models.py:4375 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4367 +#: part/models.py:4388 msgid "Parent BOM item" msgstr "" -#: part/models.py:4375 +#: part/models.py:4396 msgid "Substitute part" msgstr "" -#: part/models.py:4391 +#: part/models.py:4412 msgid "Part 1" msgstr "" -#: part/models.py:4399 +#: part/models.py:4420 msgid "Part 2" msgstr "" -#: part/models.py:4400 +#: part/models.py:4421 msgid "Select Related Part" msgstr "" -#: part/models.py:4419 +#: part/models.py:4440 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4424 +#: part/models.py:4445 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:119 part/serializers.py:141 +#: part/serializers.py:118 part/serializers.py:140 #: part/templates/part/category.html:122 part/templates/part/category.html:207 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:185 +#: part/serializers.py:172 msgid "Results" msgstr "" -#: part/serializers.py:186 +#: part/serializers.py:173 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:210 part/serializers.py:228 stock/serializers.py:406 +#: part/serializers.py:197 part/serializers.py:215 stock/serializers.py:562 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:273 +#: part/serializers.py:260 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:397 +#: part/serializers.py:384 msgid "No parts selected" msgstr "" -#: part/serializers.py:407 +#: part/serializers.py:394 msgid "Select category" msgstr "" -#: part/serializers.py:437 +#: part/serializers.py:429 msgid "Original Part" msgstr "" -#: part/serializers.py:438 +#: part/serializers.py:430 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:443 +#: part/serializers.py:435 msgid "Copy Image" msgstr "" -#: part/serializers.py:444 +#: part/serializers.py:436 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:450 part/templates/part/detail.html:277 +#: part/serializers.py:442 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:451 +#: part/serializers.py:443 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:449 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:450 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:456 msgid "Copy Notes" msgstr "" -#: part/serializers.py:465 +#: part/serializers.py:457 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:475 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:477 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:484 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:488 +#: part/serializers.py:485 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:500 +#: part/serializers.py:502 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:516 +#: part/serializers.py:518 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:526 +#: part/serializers.py:528 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:533 +#: part/serializers.py:535 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:542 +#: part/serializers.py:544 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:553 +#: part/serializers.py:555 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:560 +#: part/serializers.py:562 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:823 +#: part/serializers.py:826 msgid "External Stock" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:828 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:828 +#: part/serializers.py:831 msgid "Variant Stock" msgstr "" -#: part/serializers.py:856 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:471 +#: part/serializers.py:861 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:472 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:862 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:863 templates/js/translated/part.js:102 +#: part/serializers.py:868 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:864 +#: part/serializers.py:869 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:870 +#: part/serializers.py:875 msgid "Supplier Information" msgstr "" -#: part/serializers.py:871 +#: part/serializers.py:876 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:884 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:885 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:885 +#: part/serializers.py:890 msgid "Existing Image" msgstr "" -#: part/serializers.py:886 +#: part/serializers.py:891 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:908 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1109 +#: part/serializers.py:1114 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1119 +#: part/serializers.py:1124 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1129 +#: part/serializers.py:1134 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1135 +#: part/serializers.py:1140 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1141 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1141 +#: part/serializers.py:1146 msgid "Generate Report" msgstr "" -#: part/serializers.py:1142 +#: part/serializers.py:1147 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1147 +#: part/serializers.py:1152 msgid "Update Parts" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1153 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1156 +#: part/serializers.py:1161 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1262 +#: part/serializers.py:1267 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1269 +#: part/serializers.py:1274 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1277 +#: part/serializers.py:1282 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1284 +#: part/serializers.py:1289 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1313 +#: part/serializers.py:1318 msgid "Update" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1319 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1342 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1349 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1352 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1714 +#: part/serializers.py:1719 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1722 +#: part/serializers.py:1727 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1723 +#: part/serializers.py:1728 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1728 +#: part/serializers.py:1733 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1729 +#: part/serializers.py:1734 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1734 +#: part/serializers.py:1739 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1735 +#: part/serializers.py:1740 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1740 +#: part/serializers.py:1745 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1741 +#: part/serializers.py:1746 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1775 +#: part/serializers.py:1780 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1776 +#: part/serializers.py:1781 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1806 +#: part/serializers.py:1811 msgid "No part column specified" msgstr "" -#: part/serializers.py:1850 +#: part/serializers.py:1855 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1853 +#: part/serializers.py:1858 msgid "No matching part found" msgstr "" -#: part/serializers.py:1856 +#: part/serializers.py:1861 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1865 +#: part/serializers.py:1870 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1873 +#: part/serializers.py:1878 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1894 +#: part/serializers.py:1899 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:224 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 -#: templates/js/translated/purchase_order.js:2085 +#: part/stocktake.py:225 templates/js/translated/part.js:1067 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 +#: templates/js/translated/purchase_order.js:2084 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:226 +#: part/stocktake.py:227 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:284 +#: part/stocktake.py:285 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:285 +#: part/stocktake.py:286 msgid "A new stocktake report is available for download" msgstr "" @@ -7279,9 +7207,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:251 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2215 users/models.py:204 +#: templates/js/translated/stock.js:2216 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7379,15 +7307,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:659 +#: part/templates/part/detail.html:657 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:667 +#: part/templates/part/detail.html:665 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:752 +#: part/templates/part/detail.html:750 msgid "Add Test Result Template" msgstr "" @@ -7446,7 +7374,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 +#: stock/templates/stock/location.html:74 templates/js/translated/label.js:143 msgid "Print Label" msgstr "" @@ -7517,7 +7445,7 @@ msgid "Part is virtual (not a physical part)" msgstr "" #: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:682 +#: part/templates/part/part_base.html:681 msgid "Show Part Details" msgstr "" @@ -7540,7 +7468,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:322 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1264 templates/js/translated/part.js:2444 +#: templates/js/translated/part.js:1265 templates/js/translated/part.js:2444 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -7563,19 +7491,19 @@ msgstr "" msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:512 +#: part/templates/part/part_base.html:511 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:529 +#: part/templates/part/part_base.html:528 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:580 +#: part/templates/part/part_base.html:579 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:676 +#: part/templates/part/part_base.html:675 msgid "Hide Part Details" msgstr "" @@ -7633,9 +7561,9 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1242 templates/js/translated/part.js:2145 +#: templates/js/translated/part.js:1243 templates/js/translated/part.js:2146 #: templates/js/translated/part.js:2392 templates/js/translated/stock.js:1059 -#: templates/js/translated/stock.js:2069 templates/navbar.html:31 +#: templates/js/translated/stock.js:2070 templates/navbar.html:31 msgid "Stock" msgstr "Наличност" @@ -7677,11 +7605,11 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:247 +#: part/templates/part/prices.html:28 stock/admin.py:251 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2245 +#: templates/js/translated/stock.js:2246 msgid "Last Updated" msgstr "" @@ -7753,9 +7681,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:221 -#: templates/js/translated/part.js:704 templates/js/translated/part.js:2140 -#: templates/js/translated/part.js:2142 +#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:2141 +#: templates/js/translated/part.js:2143 msgid "No Stock" msgstr "Няма наличност" @@ -7833,7 +7761,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:168 +#: plugin/api.py:170 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -7899,8 +7827,8 @@ msgstr "" msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2590 -#: templates/js/translated/sales_order.js:1917 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2589 +#: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" @@ -7994,20 +7922,20 @@ msgstr "" msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:39 +#: plugin/base/label/label.py:39 templates/js/translated/label.js:155 msgid "Label printing failed" msgstr "" -#: plugin/base/label/mixins.py:63 +#: plugin/base/label/mixins.py:56 msgid "Error rendering label to PDF" msgstr "" -#: plugin/base/label/mixins.py:76 +#: plugin/base/label/mixins.py:70 msgid "Error rendering label to HTML" msgstr "" -#: plugin/base/label/mixins.py:111 -msgid "Error rendering label to PNG" +#: plugin/base/label/mixins.py:151 +msgid "No items provided to print" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:25 @@ -8021,7 +7949,7 @@ msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 -#: plugin/builtin/labels/inventree_label.py:23 +#: plugin/builtin/labels/inventree_label.py:22 #: plugin/builtin/labels/inventree_machine.py:64 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -8075,19 +8003,19 @@ msgstr "" msgid "Default currency exchange integration" msgstr "" -#: plugin/builtin/labels/inventree_label.py:20 +#: plugin/builtin/labels/inventree_label.py:19 msgid "InvenTree PDF label printer" msgstr "" -#: plugin/builtin/labels/inventree_label.py:21 +#: plugin/builtin/labels/inventree_label.py:20 msgid "Provides native support for printing PDF labels" msgstr "" -#: plugin/builtin/labels/inventree_label.py:29 +#: plugin/builtin/labels/inventree_label.py:28 msgid "Debug mode" msgstr "" -#: plugin/builtin/labels/inventree_label.py:30 +#: plugin/builtin/labels/inventree_label.py:29 msgid "Enable debug mode - returns raw HTML instead of PDF" msgstr "" @@ -8099,11 +8027,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:150 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:167 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8127,7 +8055,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:209 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:308 msgid "Landscape" msgstr "" @@ -8143,11 +8071,11 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:94 +#: plugin/builtin/labels/label_sheet.py:99 msgid "Label is too large for page size" msgstr "" -#: plugin/builtin/labels/label_sheet.py:128 +#: plugin/builtin/labels/label_sheet.py:133 msgid "No labels were generated" msgstr "" @@ -8240,61 +8168,62 @@ msgstr "" msgid "Uninstalled plugin successfully" msgstr "" -#: plugin/models.py:30 +#: plugin/models.py:36 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:31 +#: plugin/models.py:37 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:100 +#: plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: plugin/models.py:34 +#: plugin/models.py:44 msgid "Key of plugin" msgstr "" -#: plugin/models.py:42 +#: plugin/models.py:52 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:90 msgid "Package Name" msgstr "" -#: plugin/models.py:51 +#: plugin/models.py:61 msgid "Name of the installed package, if the plugin was installed via PIP" msgstr "" -#: plugin/models.py:56 +#: plugin/models.py:66 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:147 templates/js/translated/table_filters.js:370 +#: plugin/models.py:157 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:504 msgid "Installed" msgstr "" -#: plugin/models.py:156 +#: plugin/models.py:166 msgid "Sample plugin" msgstr "" -#: plugin/models.py:164 +#: plugin/models.py:174 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:172 +#: plugin/models.py:182 msgid "Package Plugin" msgstr "" -#: plugin/models.py:196 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:220 report/models.py:475 +#: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:243 +#: plugin/models.py:267 msgid "Method" msgstr "" @@ -8302,17 +8231,17 @@ msgstr "" msgid "No author found" msgstr "" -#: plugin/registry.py:588 +#: plugin/registry.py:598 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:591 +#: plugin/registry.py:601 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:593 +#: plugin/registry.py:603 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -8395,279 +8324,359 @@ msgstr "" msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:156 +#: plugin/serializers.py:161 msgid "Full reload" msgstr "" -#: plugin/serializers.py:157 +#: plugin/serializers.py:162 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:163 +#: plugin/serializers.py:168 msgid "Force reload" msgstr "" -#: plugin/serializers.py:165 +#: plugin/serializers.py:170 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:177 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:178 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:195 +#: plugin/serializers.py:205 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:196 +#: plugin/serializers.py:206 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:219 +#: plugin/serializers.py:226 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:220 +#: plugin/serializers.py:227 msgid "Delete the plugin configuration from the database" msgstr "" -#: report/api.py:158 +#: report/api.py:88 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:197 report/api.py:234 +#: report/api.py:103 report/models.py:439 report/serializers.py:98 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1747 +#: templates/js/translated/return_order.js:353 +#: templates/js/translated/sales_order.js:887 +#: templates/js/translated/sales_order.js:1047 +msgid "Items" +msgstr "" + +#: report/api.py:180 +msgid "Plugin not found" +msgstr "" + +#: report/api.py:182 +msgid "Plugin is not active" +msgstr "" + +#: report/api.py:184 +msgid "Plugin does not support label printing" +msgstr "" + +#: report/api.py:233 +msgid "Invalid label dimensions" +msgstr "" + +#: report/api.py:248 report/api.py:329 +msgid "No valid items provided to template" +msgstr "" + +#: report/api.py:283 +msgid "Error printing label" +msgstr "" + +#: report/api.py:375 report/api.py:411 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:319 -msgid "Test report" -msgstr "" - -#: report/helpers.py:15 +#: report/helpers.py:43 msgid "A4" msgstr "" -#: report/helpers.py:16 +#: report/helpers.py:44 msgid "A3" msgstr "" -#: report/helpers.py:17 +#: report/helpers.py:45 msgid "Legal" msgstr "" -#: report/helpers.py:18 +#: report/helpers.py:46 msgid "Letter" msgstr "" -#: report/models.py:177 +#: report/models.py:119 +msgid "Template file with this name already exists" +msgstr "" + +#: report/models.py:151 msgid "Template name" msgstr "" -#: report/models.py:183 -msgid "Report template file" +#: report/models.py:157 +msgid "Template description" msgstr "" -#: report/models.py:190 -msgid "Report template description" +#: report/models.py:163 +msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:196 -msgid "Report revision number (auto-increments)" +#: report/models.py:203 +msgid "Filename Pattern" msgstr "" #: report/models.py:204 +msgid "Pattern for generating filenames" +msgstr "" + +#: report/models.py:209 +msgid "Template is enabled" +msgstr "" + +#: report/models.py:215 +msgid "Target model type for template" +msgstr "" + +#: report/models.py:235 +msgid "Filters" +msgstr "" + +#: report/models.py:236 +msgid "Template query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:295 report/models.py:362 +msgid "Template file" +msgstr "" + +#: report/models.py:303 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:210 +#: report/models.py:309 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:318 -msgid "Pattern for generating report filenames" +#: report/models.py:368 +msgid "Width [mm]" msgstr "" -#: report/models.py:325 -msgid "Report template is enabled" +#: report/models.py:369 +msgid "Label width, specified in mm" msgstr "" -#: report/models.py:347 -msgid "StockItem query filters (comma-separated list of key=value pairs)" +#: report/models.py:375 +msgid "Height [mm]" msgstr "" -#: report/models.py:354 -msgid "Include Installed Tests" +#: report/models.py:376 +msgid "Label height, specified in mm" msgstr "" -#: report/models.py:356 -msgid "Include test results for stock items installed inside assembled item" +#: report/models.py:439 +msgid "Number of items to process" msgstr "" -#: report/models.py:424 -msgid "Build Filters" +#: report/models.py:445 +msgid "Report generation is complete" msgstr "" -#: report/models.py:425 -msgid "Build query filters (comma-separated list of key=value pairs" +#: report/models.py:449 templates/js/translated/build.js:2177 +msgid "Progress" msgstr "" -#: report/models.py:464 -msgid "Part Filters" +#: report/models.py:449 +msgid "Report generation progress" msgstr "" -#: report/models.py:465 -msgid "Part query filters (comma-separated list of key=value pairs" +#: report/models.py:457 +msgid "Report Template" msgstr "" -#: report/models.py:497 -msgid "Purchase order query filters" +#: report/models.py:464 report/models.py:487 +msgid "Output File" msgstr "" -#: report/models.py:533 -msgid "Sales order query filters" +#: report/models.py:465 report/models.py:488 +msgid "Generated output file" msgstr "" -#: report/models.py:569 -msgid "Return order query filters" +#: report/models.py:476 +msgid "Label output plugin" msgstr "" -#: report/models.py:641 -msgid "Snippet file with this name already exists" +#: report/models.py:480 +msgid "Label Template" msgstr "" -#: report/models.py:648 +#: report/models.py:503 msgid "Snippet" msgstr "" -#: report/models.py:649 +#: report/models.py:504 msgid "Report snippet file" msgstr "" -#: report/models.py:656 +#: report/models.py:511 msgid "Snippet file description" msgstr "" -#: report/models.py:714 -msgid "Asset file with this name already exists" -msgstr "" - -#: report/models.py:722 +#: report/models.py:529 msgid "Asset" msgstr "" -#: report/models.py:723 +#: report/models.py:530 msgid "Report asset file" msgstr "" -#: report/models.py:730 +#: report/models.py:537 msgid "Asset file description" msgstr "" -#: report/models.py:752 -msgid "stock location query filters (comma-separated list of key=value pairs)" +#: report/serializers.py:91 +msgid "Select report template" +msgstr "" + +#: report/serializers.py:99 report/serializers.py:149 +msgid "List of item primary keys to include in the report" +msgstr "" + +#: report/serializers.py:132 +msgid "Select label template" +msgstr "" + +#: report/serializers.py:140 +msgid "Printing Plugin" +msgstr "" + +#: report/serializers.py:141 +msgid "Select plugin to use for label printing" +msgstr "" + +#: report/templates/label/part_label.html:31 +#: report/templates/label/stockitem_qr.html:21 +#: report/templates/label/stocklocation_qr.html:20 +#: templates/allauth_2fa/setup.html:18 +msgid "QR Code" +msgstr "" + +#: report/templates/label/part_label_code128.html:31 +#: report/templates/label/stocklocation_qr_and_text.html:31 +#: templates/qr_code.html:7 +msgid "QR code" msgstr "" #: report/templates/report/inventree_bill_of_materials_report.html:133 msgid "Materials needed" msgstr "" -#: report/templates/report/inventree_build_order_base.html:146 +#: report/templates/report/inventree_build_order_report.html:146 msgid "Required For" msgstr "" -#: report/templates/report/inventree_po_report_base.html:15 +#: report/templates/report/inventree_purchase_order_report.html:15 msgid "Supplier was deleted" msgstr "" -#: report/templates/report/inventree_po_report_base.html:30 -#: report/templates/report/inventree_so_report_base.html:30 +#: 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/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2116 -#: templates/js/translated/sales_order.js:1837 +#: templates/js/translated/purchase_order.js:2115 +#: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" -#: report/templates/report/inventree_po_report_base.html:55 -#: report/templates/report/inventree_return_order_report_base.html:48 -#: report/templates/report/inventree_so_report_base.html:55 +#: report/templates/report/inventree_purchase_order_report.html:55 +#: report/templates/report/inventree_return_order_report.html:48 +#: report/templates/report/inventree_sales_order_report.html:55 msgid "Extra Line Items" msgstr "" -#: report/templates/report/inventree_po_report_base.html:72 -#: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:2018 -#: templates/js/translated/sales_order.js:1806 +#: report/templates/report/inventree_purchase_order_report.html:72 +#: report/templates/report/inventree_sales_order_report.html:72 +#: templates/js/translated/purchase_order.js:2017 +#: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" -#: report/templates/report/inventree_return_order_report_base.html:25 -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:809 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:519 templates/js/translated/build.js:1364 -#: templates/js/translated/build.js:2353 -#: templates/js/translated/model_renderers.js:224 -#: templates/js/translated/return_order.js:540 -#: templates/js/translated/return_order.js:724 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:824 +#: stock/serializers.py:149 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:519 templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:2355 +#: 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:1611 -#: templates/js/translated/sales_order.js:1696 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 #: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" -#: report/templates/report/inventree_slr_report.html:97 +#: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" -#: report/templates/report/inventree_test_report_base.html:21 +#: report/templates/report/inventree_test_report.html:21 msgid "Stock Item Test Report" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 +#: report/templates/report/inventree_test_report.html:97 msgid "Test Results" msgstr "" -#: report/templates/report/inventree_test_report_base.html:102 -#: templates/js/translated/stock.js:1492 +#: report/templates/report/inventree_test_report.html:102 +#: templates/js/translated/stock.js:1495 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2430 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2412 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:130 +#: report/templates/report/inventree_test_report.html:130 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:132 +#: report/templates/report/inventree_test_report.html:132 msgid "Fail" msgstr "" -#: report/templates/report/inventree_test_report_base.html:139 +#: report/templates/report/inventree_test_report.html:139 msgid "No result (required)" msgstr "" -#: report/templates/report/inventree_test_report_base.html:141 +#: report/templates/report/inventree_test_report.html:141 msgid "No result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:154 +#: report/templates/report/inventree_test_report.html:154 #: stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:162 templates/js/translated/stock.js:700 -#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3110 +#: report/templates/report/inventree_test_report.html:168 stock/admin.py:161 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3110 msgid "Serial" msgstr "" @@ -8687,617 +8696,793 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:52 stock/admin.py:172 +#: stock/admin.py:51 stock/admin.py:171 msgid "Location ID" msgstr "" -#: stock/admin.py:54 stock/admin.py:176 +#: stock/admin.py:53 stock/admin.py:175 msgid "Location Name" msgstr "" -#: stock/admin.py:64 stock/templates/stock/location.html:131 +#: stock/admin.py:63 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:149 +#: stock/admin.py:148 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:168 +#: stock/admin.py:167 msgid "Status Code" msgstr "" -#: stock/admin.py:180 +#: stock/admin.py:179 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:185 +#: stock/admin.py:184 +msgid "Supplier Part SKU" +msgstr "" + +#: stock/admin.py:189 msgid "Supplier ID" msgstr "" -#: stock/admin.py:191 +#: stock/admin.py:195 msgid "Supplier Name" msgstr "" -#: stock/admin.py:196 +#: stock/admin.py:200 msgid "Customer ID" msgstr "" -#: stock/admin.py:201 stock/models.py:789 +#: stock/admin.py:205 stock/models.py:804 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:206 +#: stock/admin.py:210 msgid "Build ID" msgstr "" -#: stock/admin.py:216 +#: stock/admin.py:220 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:221 +#: stock/admin.py:225 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:236 +#: stock/admin.py:240 msgid "Review Needed" msgstr "" -#: stock/admin.py:241 +#: stock/admin.py:245 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:256 stock/models.py:883 +#: stock/admin.py:260 stock/models.py:898 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2229 users/models.py:124 +#: templates/js/translated/stock.js:2230 users/models.py:124 msgid "Expiry Date" msgstr "" -#: stock/api.py:284 +#: stock/api.py:312 msgid "Filter by location depth" msgstr "" -#: stock/api.py:304 +#: stock/api.py:332 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:325 +#: stock/api.py:353 msgid "Parent Location" msgstr "" -#: stock/api.py:326 +#: stock/api.py:354 msgid "Filter by parent location" msgstr "" -#: stock/api.py:579 templates/js/translated/table_filters.js:427 +#: stock/api.py:609 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:767 +#: stock/api.py:797 msgid "Part Tree" msgstr "" -#: stock/api.py:797 +#: stock/api.py:827 msgid "Expiry date before" msgstr "" -#: stock/api.py:801 +#: stock/api.py:831 msgid "Expiry date after" msgstr "" -#: stock/api.py:804 stock/templates/stock/item_base.html:439 +#: stock/api.py:834 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:891 +#: stock/api.py:921 msgid "Quantity is required" msgstr "" -#: stock/api.py:897 +#: stock/api.py:927 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:928 +#: stock/api.py:958 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:938 +#: stock/api.py:968 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:969 +#: stock/api.py:999 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:63 +#: stock/models.py:60 msgid "Stock Location type" msgstr "" -#: stock/models.py:64 +#: stock/models.py:61 msgid "Stock Location types" msgstr "" -#: stock/models.py:90 +#: stock/models.py:87 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:771 +#: stock/models.py:124 stock/models.py:786 #: 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:179 +#: stock/models.py:125 stock/templates/stock/location.html:186 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Места в склада" -#: stock/models.py:158 stock/models.py:932 +#: stock/models.py:167 stock/models.py:947 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:159 stock/models.py:933 +#: stock/models.py:168 stock/models.py:948 msgid "Select Owner" msgstr "" -#: stock/models.py:167 +#: stock/models.py:176 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:174 templates/js/translated/stock.js:2781 +#: stock/models.py:183 templates/js/translated/stock.js:2781 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:175 +#: stock/models.py:184 msgid "This is an external stock location" msgstr "" -#: stock/models.py:181 templates/js/translated/stock.js:2790 +#: stock/models.py:190 templates/js/translated/stock.js:2790 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:185 +#: stock/models.py:194 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:254 +#: stock/models.py:261 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:626 +#: stock/models.py:641 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:653 stock/serializers.py:290 +#: stock/models.py:668 stock/serializers.py:446 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:670 +#: stock/models.py:685 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:680 stock/models.py:693 +#: stock/models.py:695 stock/models.py:708 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:683 +#: stock/models.py:698 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:707 +#: stock/models.py:722 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:712 +#: stock/models.py:727 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:725 +#: stock/models.py:740 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:741 +#: stock/models.py:756 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:753 +#: stock/models.py:768 msgid "Base part" msgstr "" -#: stock/models.py:763 +#: stock/models.py:778 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:775 +#: stock/models.py:790 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:783 stock/serializers.py:1351 +#: stock/models.py:798 stock/serializers.py:1467 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:794 +#: stock/models.py:809 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:813 +#: stock/models.py:828 msgid "Serial number for this item" msgstr "" -#: stock/models.py:827 stock/serializers.py:1334 +#: stock/models.py:842 stock/serializers.py:1450 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:832 +#: stock/models.py:847 msgid "Stock Quantity" msgstr "" -#: stock/models.py:842 +#: stock/models.py:857 msgid "Source Build" msgstr "" -#: stock/models.py:845 +#: stock/models.py:860 msgid "Build for this stock item" msgstr "" -#: stock/models.py:852 stock/templates/stock/item_base.html:363 +#: stock/models.py:867 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:855 +#: stock/models.py:870 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:864 +#: stock/models.py:879 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:868 +#: stock/models.py:883 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:874 +#: stock/models.py:889 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:885 +#: stock/models.py:900 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:903 +#: stock/models.py:918 msgid "Delete on deplete" msgstr "" -#: stock/models.py:904 +#: stock/models.py:919 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:924 +#: stock/models.py:939 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:955 +#: stock/models.py:970 msgid "Converted to part" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1486 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1492 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1479 +#: stock/models.py:1500 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1485 +#: stock/models.py:1506 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1511 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1498 stock/serializers.py:529 +#: stock/models.py:1519 stock/serializers.py:660 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1595 +#: stock/models.py:1616 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1613 +#: stock/models.py:1634 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1617 +#: stock/models.py:1638 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1620 +#: stock/models.py:1641 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1623 +#: stock/models.py:1644 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1647 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1629 +#: stock/models.py:1650 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1636 stock/serializers.py:1240 +#: stock/models.py:1657 stock/serializers.py:1356 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1640 +#: stock/models.py:1661 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1648 +#: stock/models.py:1669 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1674 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1870 +#: stock/models.py:1901 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2333 +#: stock/models.py:2310 msgid "Entry notes" msgstr "" -#: stock/models.py:2398 +#: stock/models.py:2378 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2403 +#: stock/models.py:2383 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2388 +msgid "Invalid value for this test" +msgstr "" + +#: stock/models.py:2412 msgid "Test result" msgstr "" -#: stock/models.py:2437 +#: stock/models.py:2419 msgid "Test output value" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2427 msgid "Test result attachment" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2431 msgid "Test notes" msgstr "" -#: stock/models.py:2457 templates/js/translated/stock.js:1545 +#: stock/models.py:2439 templates/js/translated/stock.js:1548 msgid "Test station" msgstr "" -#: stock/models.py:2458 +#: stock/models.py:2440 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2464 +#: stock/models.py:2446 msgid "Started" msgstr "" -#: stock/models.py:2465 +#: stock/models.py:2447 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2471 +#: stock/models.py:2453 msgid "Finished" msgstr "" -#: stock/models.py:2472 +#: stock/models.py:2454 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:100 -msgid "Test template for this result" +#: stock/serializers.py:74 +msgid "Generated batch code" +msgstr "" + +#: stock/serializers.py:83 +msgid "Select build order" +msgstr "" + +#: stock/serializers.py:92 +msgid "Select stock item to generate batch code for" +msgstr "" + +#: stock/serializers.py:101 +msgid "Select location to generate batch code for" +msgstr "" + +#: stock/serializers.py:110 +msgid "Select part to generate batch code for" msgstr "" #: stock/serializers.py:119 +msgid "Select purchase order" +msgstr "" + +#: stock/serializers.py:126 +msgid "Enter quantity for batch code" +msgstr "" + +#: stock/serializers.py:149 +msgid "Generated serial number" +msgstr "" + +#: stock/serializers.py:158 +msgid "Select part to generate serial number for" +msgstr "" + +#: stock/serializers.py:166 +msgid "Quantity of serial numbers to generate" +msgstr "" + +#: stock/serializers.py:228 +msgid "Test template for this result" +msgstr "" + +#: stock/serializers.py:247 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:279 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:184 +#: stock/serializers.py:315 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:282 +#: stock/serializers.py:438 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:402 +#: stock/serializers.py:558 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:464 +#: stock/serializers.py:595 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:477 +#: stock/serializers.py:608 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:484 +#: stock/serializers.py:615 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:495 stock/serializers.py:1197 stock/serializers.py:1453 +#: stock/serializers.py:626 stock/serializers.py:1313 stock/serializers.py:1569 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:633 msgid "Optional note field" msgstr "" -#: stock/serializers.py:512 +#: stock/serializers.py:643 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:567 +#: stock/serializers.py:698 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:574 +#: stock/serializers.py:705 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:575 +#: stock/serializers.py:706 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:580 stock/serializers.py:660 stock/serializers.py:756 -#: stock/serializers.py:806 +#: stock/serializers.py:711 stock/serializers.py:791 stock/serializers.py:887 +#: stock/serializers.py:937 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:588 +#: stock/serializers.py:719 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:596 +#: stock/serializers.py:727 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:607 +#: stock/serializers.py:738 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:620 +#: stock/serializers.py:751 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:655 +#: stock/serializers.py:786 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:690 +#: stock/serializers.py:821 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:703 +#: stock/serializers.py:834 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:720 +#: stock/serializers.py:851 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:882 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:788 +#: stock/serializers.py:919 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:794 +#: stock/serializers.py:925 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:890 stock/serializers.py:953 +#: stock/serializers.py:1021 stock/serializers.py:1084 #: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:213 +#: stock/templates/stock/location.html:222 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1069 +#: stock/serializers.py:1185 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1073 +#: stock/serializers.py:1189 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1077 +#: stock/serializers.py:1193 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1101 +#: stock/serializers.py:1217 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1107 +#: stock/serializers.py:1223 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1115 +#: stock/serializers.py:1231 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1125 stock/serializers.py:1379 +#: stock/serializers.py:1241 stock/serializers.py:1495 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1204 +#: stock/serializers.py:1320 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1209 +#: stock/serializers.py:1325 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1210 +#: stock/serializers.py:1326 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1215 +#: stock/serializers.py:1331 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1216 +#: stock/serializers.py:1332 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1226 +#: stock/serializers.py:1342 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1293 +#: stock/serializers.py:1409 msgid "No Change" msgstr "" -#: stock/serializers.py:1322 +#: stock/serializers.py:1438 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1341 +#: stock/serializers.py:1457 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1369 +#: stock/serializers.py:1485 msgid "Stock transaction notes" msgstr "" +#: stock/status_codes.py:11 +msgid "OK" +msgstr "Да" + +#: stock/status_codes.py:12 +msgid "Attention needed" +msgstr "" + +#: stock/status_codes.py:13 +msgid "Damaged" +msgstr "" + +#: stock/status_codes.py:14 +msgid "Destroyed" +msgstr "" + +#: stock/status_codes.py:15 +msgid "Rejected" +msgstr "" + +#: stock/status_codes.py:19 +msgid "Quarantined" +msgstr "" + +#: stock/status_codes.py:40 +msgid "Legacy stock tracking entry" +msgstr "" + +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +msgid "Stock item created" +msgstr "" + +#: stock/status_codes.py:45 +msgid "Edited stock item" +msgstr "" + +#: stock/status_codes.py:46 +msgid "Assigned serial number" +msgstr "" + +#: stock/status_codes.py:49 +msgid "Stock counted" +msgstr "Наличността е преброена" + +#: stock/status_codes.py:50 +msgid "Stock manually added" +msgstr "" + +#: stock/status_codes.py:51 +msgid "Stock manually removed" +msgstr "" + +#: stock/status_codes.py:54 +msgid "Location changed" +msgstr "" + +#: stock/status_codes.py:55 +msgid "Stock updated" +msgstr "" + +#: stock/status_codes.py:58 +msgid "Installed into assembly" +msgstr "" + +#: stock/status_codes.py:59 +msgid "Removed from assembly" +msgstr "" + +#: stock/status_codes.py:61 +msgid "Installed component item" +msgstr "" + +#: stock/status_codes.py:62 +msgid "Removed component item" +msgstr "" + +#: stock/status_codes.py:65 +msgid "Split from parent item" +msgstr "" + +#: stock/status_codes.py:66 +msgid "Split child item" +msgstr "" + +#: stock/status_codes.py:69 templates/js/translated/stock.js:1858 +msgid "Merged stock items" +msgstr "" + +#: stock/status_codes.py:72 +msgid "Converted to variant" +msgstr "" + +#: stock/status_codes.py:75 +msgid "Build order output created" +msgstr "" + +#: stock/status_codes.py:76 +msgid "Build order output completed" +msgstr "" + +#: stock/status_codes.py:77 +msgid "Build order output rejected" +msgstr "" + +#: stock/status_codes.py:78 templates/js/translated/stock.js:1764 +msgid "Consumed by build order" +msgstr "" + +#: stock/status_codes.py:81 +msgid "Shipped against Sales Order" +msgstr "" + +#: stock/status_codes.py:84 +msgid "Received against Purchase Order" +msgstr "" + +#: stock/status_codes.py:87 +msgid "Returned against Return Order" +msgstr "" + +#: stock/status_codes.py:90 templates/js/translated/table_filters.js:375 +msgid "Sent to customer" +msgstr "" + +#: stock/status_codes.py:91 +msgid "Returned from customer" +msgstr "" + #: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" @@ -9319,7 +9504,7 @@ msgstr "" msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:286 +#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:276 msgid "Delete Test Data" msgstr "" @@ -9339,11 +9524,11 @@ msgstr "" msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:274 +#: stock/templates/stock/item.html:264 msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1698 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1701 msgid "Add Test Result" msgstr "" @@ -9366,17 +9551,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1821 +#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1824 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1806 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1815 msgid "Remove stock" msgstr "" @@ -9385,12 +9570,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1830 +#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1833 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1884 +#: templates/js/translated/stock.js:1887 msgid "Assign to customer" msgstr "" @@ -9431,7 +9616,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2121 templates/navbar.html:38 +#: templates/js/translated/build.js:2123 templates/navbar.html:38 msgid "Build" msgstr "" @@ -9497,7 +9682,7 @@ msgid "Available Quantity" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2378 +#: templates/js/translated/build.js:2380 msgid "No location set" msgstr "" @@ -9528,40 +9713,40 @@ msgstr "" msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:507 -#: templates/js/translated/stock.js:1951 +#: stock/templates/stock/item_base.html:504 +#: templates/js/translated/stock.js:1952 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:532 +#: stock/templates/stock/item_base.html:527 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:541 +#: stock/templates/stock/item_base.html:536 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:552 +#: stock/templates/stock/item_base.html:547 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:616 +#: stock/templates/stock/item_base.html:611 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:619 +#: stock/templates/stock/item_base.html:614 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:620 +#: stock/templates/stock/item_base.html:615 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:628 +#: stock/templates/stock/item_base.html:623 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:662 +#: stock/templates/stock/item_base.html:657 msgid "Return to Stock" msgstr "" @@ -9625,28 +9810,32 @@ msgstr "" msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:217 +#: stock/templates/stock/location.html:176 +msgid "Location Type" +msgstr "" + +#: stock/templates/stock/location.html:226 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:218 +#: stock/templates/stock/location.html:227 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:287 +#: stock/templates/stock/location.html:297 #: templates/js/translated/stock.js:2572 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:315 +#: stock/templates/stock/location.html:319 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:388 +#: stock/templates/stock/location.html:392 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:399 +#: stock/templates/stock/location.html:403 msgid "Link Barcode to Stock Location" msgstr "" @@ -9872,12 +10061,12 @@ msgstr "" msgid "Outgoing email has not been configured. Some login and sign-up features may not work correctly!" msgstr "" -#: templates/InvenTree/settings/login.html:25 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:27 templates/account/signup.html:5 #: templates/socialaccount/signup.html:5 msgid "Signup" msgstr "" -#: templates/InvenTree/settings/login.html:34 +#: templates/InvenTree/settings/login.html:36 msgid "Single Sign On" msgstr "" @@ -9916,11 +10105,11 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:42 +#: templates/InvenTree/settings/part.html:43 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:46 +#: templates/InvenTree/settings/part.html:47 msgid "Import Part" msgstr "" @@ -9954,36 +10143,36 @@ msgstr "" msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:36 +#: templates/InvenTree/settings/plugin.html:38 #: templates/InvenTree/settings/sidebar.html:66 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:42 -#: templates/InvenTree/settings/plugin.html:43 +#: templates/InvenTree/settings/plugin.html:44 +#: templates/InvenTree/settings/plugin.html:45 #: templates/js/translated/plugin.js:151 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:45 -#: templates/InvenTree/settings/plugin.html:46 +#: templates/InvenTree/settings/plugin.html:47 +#: templates/InvenTree/settings/plugin.html:48 #: templates/js/translated/plugin.js:224 msgid "Reload Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:56 +#: templates/InvenTree/settings/plugin.html:58 msgid "External plugins are not enabled for this InvenTree installation" msgstr "" -#: templates/InvenTree/settings/plugin.html:71 +#: templates/InvenTree/settings/plugin.html:73 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:80 +#: templates/InvenTree/settings/plugin.html:82 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:82 +#: templates/InvenTree/settings/plugin.html:84 #: templates/js/translated/notification.js:76 msgid "Message" msgstr "" @@ -10070,20 +10259,20 @@ msgstr "" msgid "Pricing Settings" msgstr "" -#: templates/InvenTree/settings/pricing.html:34 +#: templates/InvenTree/settings/pricing.html:35 msgid "Exchange Rates" msgstr "" -#: templates/InvenTree/settings/pricing.html:38 +#: templates/InvenTree/settings/pricing.html:39 msgid "Update Now" msgstr "" -#: templates/InvenTree/settings/pricing.html:46 -#: templates/InvenTree/settings/pricing.html:50 +#: templates/InvenTree/settings/pricing.html:47 +#: templates/InvenTree/settings/pricing.html:51 msgid "Last Update" msgstr "" -#: templates/InvenTree/settings/pricing.html:50 +#: templates/InvenTree/settings/pricing.html:51 msgid "Never" msgstr "" @@ -10140,8 +10329,8 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:547 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:424 +#: templates/js/translated/part.js:393 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:245 users/models.py:402 msgid "Delete" msgstr "" @@ -10162,7 +10351,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2226 +#: templates/js/translated/build.js:2228 msgid "group" msgstr "" @@ -10181,12 +10370,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1645 +#: templates/js/translated/part.js:1646 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1646 +#: templates/js/translated/part.js:1647 msgid "Delete Template" msgstr "" @@ -10228,7 +10417,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:500 -#: templates/InvenTree/settings/stock.html:37 +#: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -10250,7 +10439,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2159 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2167 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" @@ -10285,7 +10474,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:33 +#: templates/InvenTree/settings/stock.html:34 msgid "Stock Location Types" msgstr "" @@ -10384,49 +10573,49 @@ msgstr "" msgid "Remove multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:171 msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 +#: templates/InvenTree/settings/user.html:177 msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:175 +#: templates/InvenTree/settings/user.html:178 msgid "Log Out Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:184 +#: templates/InvenTree/settings/user.html:187 msgid "unknown on unknown" msgstr "" -#: templates/InvenTree/settings/user.html:185 +#: templates/InvenTree/settings/user.html:188 msgid "unknown" msgstr "" -#: templates/InvenTree/settings/user.html:189 +#: templates/InvenTree/settings/user.html:192 msgid "IP Address" msgstr "" -#: templates/InvenTree/settings/user.html:190 +#: templates/InvenTree/settings/user.html:193 msgid "Device" msgstr "" -#: templates/InvenTree/settings/user.html:191 +#: templates/InvenTree/settings/user.html:194 msgid "Last Activity" msgstr "" -#: templates/InvenTree/settings/user.html:204 +#: templates/InvenTree/settings/user.html:207 #, python-format msgid "%(time)s ago (this session)" msgstr "" -#: templates/InvenTree/settings/user.html:206 +#: templates/InvenTree/settings/user.html:209 #, python-format msgid "%(time)s ago" msgstr "" -#: templates/InvenTree/settings/user.html:218 +#: templates/InvenTree/settings/user.html:223 msgid "Do you really want to remove the selected email address?" msgstr "" @@ -10576,7 +10765,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:585 +#: templates/js/translated/helpers.js:589 msgid "copy to clipboard" msgstr "" @@ -10607,26 +10796,26 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:17 -#: templates/account/login.html:38 templates/socialaccount/login.html:5 +#: templates/account/login.html:6 templates/account/login.html:19 +#: templates/account/login.html:40 templates/socialaccount/login.html:5 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:23 msgid "Not a member?" msgstr "" -#: templates/account/login.html:23 templates/account/signup.html:11 +#: templates/account/login.html:25 templates/account/signup.html:11 #: templates/account/signup.html:22 templates/socialaccount/signup.html:8 #: templates/socialaccount/signup.html:23 msgid "Sign Up" msgstr "" -#: templates/account/login.html:45 +#: templates/account/login.html:47 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:53 +#: templates/account/login.html:55 msgid "or log in with" msgstr "" @@ -10640,7 +10829,7 @@ msgid "Are you sure you want to sign out?" msgstr "" #: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35 -#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:44 +#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:45 msgid "Return to Site" msgstr "" @@ -10754,15 +10943,19 @@ msgstr "" msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." msgstr "" -#: templates/allauth_2fa/setup.html:23 +#: templates/allauth_2fa/setup.html:20 +msgid "Secret: " +msgstr "" + +#: templates/allauth_2fa/setup.html:24 msgid "Step 2" msgstr "" -#: templates/allauth_2fa/setup.html:27 +#: templates/allauth_2fa/setup.html:28 msgid "Input a token generated by the app:" msgstr "" -#: templates/allauth_2fa/setup.html:37 +#: templates/allauth_2fa/setup.html:38 msgid "Verify" msgstr "" @@ -10827,7 +11020,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:2557 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2556 msgid "Required Quantity" msgstr "" @@ -10841,7 +11034,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3218 +#: templates/js/translated/part.js:3219 msgid "Minimum Quantity" msgstr "" @@ -10929,27 +11122,27 @@ msgstr "" msgid "Delete attachments" msgstr "" -#: templates/js/translated/attachment.js:253 +#: templates/js/translated/attachment.js:260 msgid "Attachment actions" msgstr "" -#: templates/js/translated/attachment.js:275 +#: templates/js/translated/attachment.js:294 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:315 +#: templates/js/translated/attachment.js:334 msgid "Edit Attachment" msgstr "" -#: templates/js/translated/attachment.js:346 +#: templates/js/translated/attachment.js:365 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:366 +#: templates/js/translated/attachment.js:385 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:374 +#: templates/js/translated/attachment.js:393 msgid "Delete attachment" msgstr "" @@ -11006,7 +11199,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155 +#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1158 msgid "Remove stock item" msgstr "" @@ -11196,7 +11389,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2501 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2500 msgid "Variant stock allowed" msgstr "" @@ -11216,30 +11409,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2622 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2621 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2596 -#: templates/js/translated/sales_order.js:1910 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2595 +#: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2600 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2599 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2602 -#: templates/js/translated/part.js:1256 -#: templates/js/translated/sales_order.js:1907 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2601 +#: templates/js/translated/part.js:1257 +#: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2604 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2603 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2587 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2586 msgid "Consumable item" msgstr "" @@ -11271,7 +11464,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2486 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2485 msgid "Required Part" msgstr "" @@ -11440,207 +11633,207 @@ msgstr "" msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:989 templates/js/translated/build.js:2342 +#: templates/js/translated/build.js:991 templates/js/translated/build.js:2344 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/build.js:1003 +#: templates/js/translated/build.js:1005 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1025 +#: templates/js/translated/build.js:1027 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1043 +#: templates/js/translated/build.js:1045 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1061 +#: templates/js/translated/build.js:1063 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1115 +#: templates/js/translated/build.js:1116 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1116 +#: templates/js/translated/build.js:1117 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1120 +#: templates/js/translated/build.js:1121 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1387 +#: templates/js/translated/build.js:1390 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1401 +#: templates/js/translated/build.js:1404 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:1576 #: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1171 +#: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1574 -#: templates/js/translated/sales_order.js:1172 +#: templates/js/translated/build.js:1577 +#: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1637 -#: templates/js/translated/sales_order.js:1121 +#: templates/js/translated/build.js:1640 +#: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1714 +#: templates/js/translated/build.js:1717 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1715 +#: templates/js/translated/build.js:1718 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1729 -#: templates/js/translated/sales_order.js:1186 +#: templates/js/translated/build.js:1732 +#: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1757 +#: templates/js/translated/build.js:1760 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1768 -#: templates/js/translated/sales_order.js:1283 +#: templates/js/translated/build.js:1771 +#: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1841 -#: templates/js/translated/sales_order.js:1362 +#: templates/js/translated/build.js:1844 +#: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1938 +#: templates/js/translated/build.js:1941 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1939 +#: templates/js/translated/build.js:1942 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1941 +#: templates/js/translated/build.js:1944 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1942 +#: templates/js/translated/build.js:1945 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:1946 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:1974 +#: templates/js/translated/build.js:1977 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2080 +#: templates/js/translated/build.js:2082 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2115 templates/js/translated/build.js:2480 -#: templates/js/translated/forms.js:2155 templates/js/translated/forms.js:2171 +#: templates/js/translated/build.js:2117 templates/js/translated/build.js:2479 +#: templates/js/translated/forms.js:2163 templates/js/translated/forms.js:2179 #: templates/js/translated/part.js:2316 templates/js/translated/part.js:2742 -#: templates/js/translated/stock.js:1982 templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:1983 templates/js/translated/stock.js:2710 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2131 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2175 -msgid "Progress" -msgstr "" - -#: templates/js/translated/build.js:2211 templates/js/translated/stock.js:3042 +#: templates/js/translated/build.js:2213 templates/js/translated/stock.js:3042 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2387 -#: templates/js/translated/sales_order.js:1646 +#: templates/js/translated/build.js:2389 +#: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2388 -#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/build.js:2390 +#: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2405 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2415 +#: templates/js/translated/build.js:2417 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2456 +#: templates/js/translated/build.js:2455 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2457 +#: templates/js/translated/build.js:2456 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2475 +#: templates/js/translated/build.js:2474 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2505 templates/js/translated/part.js:790 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/build.js:2504 templates/js/translated/part.js:791 +#: templates/js/translated/part.js:1203 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2540 +#: templates/js/translated/build.js:2539 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2592 -#: templates/js/translated/sales_order.js:1915 +#: templates/js/translated/build.js:2591 +#: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2646 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2653 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2659 -#: templates/js/translated/sales_order.js:2016 +#: templates/js/translated/build.js:2654 +msgid "Allocate tracked items against individual build outputs" +msgstr "" + +#: templates/js/translated/build.js:2662 +#: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2664 templates/js/translated/stock.js:1865 +#: templates/js/translated/build.js:2667 templates/js/translated/stock.js:1868 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2668 -#: templates/js/translated/sales_order.js:2010 +#: templates/js/translated/build.js:2671 +#: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2672 +#: templates/js/translated/build.js:2675 msgid "Remove stock allocation" msgstr "" @@ -11787,7 +11980,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2244 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2245 msgid "Order parts" msgstr "" @@ -11804,34 +11997,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 -#: templates/js/translated/part.js:1210 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:799 +#: templates/js/translated/part.js:1211 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 -#: templates/js/translated/part.js:1214 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:803 +#: templates/js/translated/part.js:1215 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1464 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1465 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1527 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1528 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1528 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1529 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1433 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1434 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1549 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1550 msgid "Delete Parameter" msgstr "" @@ -11886,12 +12079,12 @@ msgid "Delete price break" msgstr "" #: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:672 +#: templates/js/translated/filters.js:667 msgid "true" msgstr "" #: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:673 +#: templates/js/translated/filters.js:668 msgid "false" msgstr "" @@ -11923,7 +12116,7 @@ msgstr "" msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:582 +#: templates/js/translated/filters.js:577 msgid "Create filter" msgstr "" @@ -11956,32 +12149,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1473 templates/modals.html:19 +#: templates/js/translated/forms.js:1477 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1971 +#: templates/js/translated/forms.js:1975 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2275 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2285 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2489 +#: templates/js/translated/forms.js:2499 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3103 +#: templates/js/translated/forms.js:3113 msgid "Select Columns" msgstr "" @@ -12005,51 +12198,15 @@ msgstr "" msgid "No parts required for builds" msgstr "" -#: templates/js/translated/label.js:53 templates/js/translated/report.js:123 +#: templates/js/translated/label.js:55 templates/js/translated/report.js:38 msgid "Select Items" msgstr "" -#: templates/js/translated/label.js:54 +#: templates/js/translated/label.js:56 templates/js/translated/report.js:39 msgid "No items selected for printing" msgstr "" -#: templates/js/translated/label.js:72 -msgid "No Labels Found" -msgstr "" - -#: templates/js/translated/label.js:73 -msgid "No label templates found which match the selected items" -msgstr "" - -#: templates/js/translated/label.js:97 -msgid "selected" -msgstr "" - -#: templates/js/translated/label.js:133 -msgid "Printing Options" -msgstr "" - -#: templates/js/translated/label.js:148 -msgid "Print label" -msgstr "" - -#: templates/js/translated/label.js:148 -msgid "Print labels" -msgstr "" - -#: templates/js/translated/label.js:149 -msgid "Print" -msgstr "" - -#: templates/js/translated/label.js:155 -msgid "Select label template" -msgstr "" - -#: templates/js/translated/label.js:168 -msgid "Select plugin" -msgstr "" - -#: templates/js/translated/label.js:187 +#: templates/js/translated/label.js:150 msgid "Labels sent to printer" msgstr "" @@ -12118,7 +12275,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1604 +#: templates/js/translated/part.js:1605 msgid "ID" msgstr "" @@ -12167,7 +12324,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:1991 +#: templates/js/translated/purchase_order.js:1990 msgid "No line items found" msgstr "" @@ -12199,249 +12356,249 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:308 +#: templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:332 templates/js/translated/stock.js:175 +#: templates/js/translated/part.js:333 templates/js/translated/stock.js:175 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:355 +#: templates/js/translated/part.js:356 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:356 +#: templates/js/translated/part.js:357 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:370 +#: templates/js/translated/part.js:371 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:383 +#: templates/js/translated/part.js:384 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:388 +#: templates/js/translated/part.js:389 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:397 +#: templates/js/translated/part.js:398 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:401 +#: templates/js/translated/part.js:402 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:406 +#: templates/js/translated/part.js:407 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:431 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:433 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:433 +#: templates/js/translated/part.js:434 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:461 +#: templates/js/translated/part.js:462 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:464 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:474 +#: templates/js/translated/part.js:475 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:532 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:532 +#: templates/js/translated/part.js:533 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:546 +#: templates/js/translated/part.js:547 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:549 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:549 +#: templates/js/translated/part.js:550 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:551 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:557 +#: templates/js/translated/part.js:558 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:593 +#: templates/js/translated/part.js:594 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:596 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:600 +#: templates/js/translated/part.js:601 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:603 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:619 +#: templates/js/translated/part.js:620 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:629 +#: templates/js/translated/part.js:630 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:632 +#: templates/js/translated/part.js:633 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:657 +#: templates/js/translated/part.js:658 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:685 +#: templates/js/translated/part.js:686 #: templates/js/translated/table_filters.js:747 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:688 +#: templates/js/translated/part.js:689 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:748 +#: templates/js/translated/part.js:749 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:771 +#: templates/js/translated/part.js:772 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:794 templates/js/translated/part.js:1206 +#: templates/js/translated/part.js:795 templates/js/translated/part.js:1207 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:806 +#: templates/js/translated/part.js:807 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:810 +#: templates/js/translated/part.js:811 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:897 +#: templates/js/translated/part.js:898 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:901 +#: templates/js/translated/part.js:902 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1050 +#: templates/js/translated/part.js:1051 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1144 +#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1145 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1154 +#: templates/js/translated/part.js:1113 templates/js/translated/part.js:1155 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1281 +#: templates/js/translated/part.js:1282 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:1600 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1662 +#: templates/js/translated/part.js:1663 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1674 +#: templates/js/translated/part.js:1675 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1683 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1716 -#: templates/js/translated/purchase_order.js:1655 +#: templates/js/translated/part.js:1717 +#: templates/js/translated/purchase_order.js:1654 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1860 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/return_order.js:756 -#: templates/js/translated/sales_order.js:1875 +#: templates/js/translated/part.js:1861 +#: templates/js/translated/purchase_order.js:2153 +#: templates/js/translated/return_order.js:755 +#: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1906 -#: templates/js/translated/purchase_order.js:2221 +#: templates/js/translated/part.js:1907 +#: templates/js/translated/purchase_order.js:2220 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1969 +#: templates/js/translated/part.js:1970 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1991 +#: templates/js/translated/part.js:1992 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2079 templates/js/translated/part.js:2506 +#: templates/js/translated/part.js:2080 templates/js/translated/part.js:2506 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2200 +#: templates/js/translated/part.js:2201 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2205 +#: templates/js/translated/part.js:2206 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2235 +#: templates/js/translated/part.js:2236 msgid "Set category" msgstr "" @@ -12482,64 +12639,64 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2864 +#: templates/js/translated/part.js:2865 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2886 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2887 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2936 templates/js/translated/stock.js:1453 +#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1456 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1454 -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/part.js:2938 templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1731 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2941 +#: templates/js/translated/part.js:2942 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2958 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2971 +#: templates/js/translated/part.js:2972 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3050 templates/js/translated/part.js:3051 +#: templates/js/translated/part.js:3051 templates/js/translated/part.js:3052 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3053 +#: templates/js/translated/part.js:3054 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3059 +#: templates/js/translated/part.js:3060 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3109 +#: templates/js/translated/part.js:3110 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3115 +#: templates/js/translated/part.js:3116 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3211 +#: templates/js/translated/part.js:3212 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3227 +#: templates/js/translated/part.js:3228 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3272 +#: templates/js/translated/part.js:3273 msgid "Minimum Stock Level" msgstr "" @@ -12665,7 +12822,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:448 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:552 msgid "Mark this order as complete?" msgstr "" @@ -12678,7 +12835,6 @@ msgid "This order has line items which have not been marked as received." msgstr "" #: templates/js/translated/purchase_order.js:460 -#: templates/js/translated/sales_order.js:514 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" @@ -12736,12 +12892,12 @@ msgid "No matching purchase orders" msgstr "" #: templates/js/translated/purchase_order.js:1073 -#: templates/js/translated/return_order.js:491 +#: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" #: templates/js/translated/purchase_order.js:1074 -#: templates/js/translated/return_order.js:492 +#: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" @@ -12790,7 +12946,7 @@ msgid "Quantity to Receive" msgstr "" #: templates/js/translated/purchase_order.js:1333 -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Confirm receipt of items" msgstr "" @@ -12810,81 +12966,66 @@ msgstr "" msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1682 -#: templates/js/translated/return_order.js:286 -#: templates/js/translated/sales_order.js:774 -#: templates/js/translated/sales_order.js:998 +#: templates/js/translated/purchase_order.js:1681 +#: 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:1748 -#: templates/js/translated/return_order.js:354 -#: templates/js/translated/sales_order.js:851 -#: templates/js/translated/sales_order.js:1011 -msgid "Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:1844 +#: templates/js/translated/purchase_order.js:1843 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1862 +#: templates/js/translated/purchase_order.js:1861 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1917 -#: templates/js/translated/sales_order.js:2070 +#: templates/js/translated/purchase_order.js:1916 +#: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1932 -#: templates/js/translated/return_order.js:476 -#: templates/js/translated/return_order.js:669 -#: templates/js/translated/sales_order.js:2083 +#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/return_order.js:475 +#: templates/js/translated/return_order.js:668 +#: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1943 -#: templates/js/translated/return_order.js:682 -#: templates/js/translated/sales_order.js:2094 +#: templates/js/translated/purchase_order.js:1942 +#: templates/js/translated/return_order.js:681 +#: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2225 -#: templates/js/translated/sales_order.js:2024 +#: templates/js/translated/purchase_order.js:2224 +#: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2226 -#: templates/js/translated/return_order.js:801 -#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/purchase_order.js:2225 +#: templates/js/translated/return_order.js:800 +#: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2227 -#: templates/js/translated/return_order.js:805 -#: templates/js/translated/sales_order.js:2031 +#: templates/js/translated/purchase_order.js:2226 +#: templates/js/translated/return_order.js:804 +#: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:63 -msgid "items selected" +#: templates/js/translated/report.js:49 +msgid "Print Report" msgstr "" -#: templates/js/translated/report.js:71 -msgid "Select Report Template" +#: templates/js/translated/report.js:68 +msgid "Report print successful" msgstr "" -#: templates/js/translated/report.js:86 -msgid "Select Test Report Template" -msgstr "" - -#: templates/js/translated/report.js:140 -msgid "No Reports Found" -msgstr "" - -#: templates/js/translated/report.js:141 -msgid "No report templates found which match the selected items" +#: templates/js/translated/report.js:73 +msgid "Report printing failed" msgstr "" #: templates/js/translated/return_order.js:60 @@ -12916,25 +13057,25 @@ msgstr "" msgid "Complete Return Order" msgstr "" -#: templates/js/translated/return_order.js:266 +#: templates/js/translated/return_order.js:265 msgid "No return orders found" msgstr "" -#: templates/js/translated/return_order.js:300 -#: templates/js/translated/sales_order.js:788 +#: templates/js/translated/return_order.js:299 +#: templates/js/translated/sales_order.js:824 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:562 +#: templates/js/translated/return_order.js:561 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:693 -#: templates/js/translated/sales_order.js:2231 +#: templates/js/translated/return_order.js:692 +#: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:798 +#: templates/js/translated/return_order.js:797 msgid "Mark item as received" msgstr "" @@ -12978,140 +13119,156 @@ msgstr "" msgid "Skip" msgstr "" +#: templates/js/translated/sales_order.js:484 +msgid "Ship Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:500 +msgid "Ship this order?" +msgstr "" + +#: templates/js/translated/sales_order.js:506 +msgid "Order cannot be shipped as there are incomplete shipments" +msgstr "" + #: templates/js/translated/sales_order.js:513 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:535 +#: templates/js/translated/sales_order.js:514 +msgid "Shipping this order means that the order and line items will no longer be editable." +msgstr "" + +#: templates/js/translated/sales_order.js:572 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:540 +#: templates/js/translated/sales_order.js:577 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:559 +#: templates/js/translated/sales_order.js:596 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:564 +#: templates/js/translated/sales_order.js:601 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:618 +#: templates/js/translated/sales_order.js:655 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:728 +#: templates/js/translated/sales_order.js:764 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:908 +#: templates/js/translated/sales_order.js:944 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:911 +#: templates/js/translated/sales_order.js:947 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:916 +#: templates/js/translated/sales_order.js:952 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:933 +#: templates/js/translated/sales_order.js:969 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:948 +#: templates/js/translated/sales_order.js:984 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:981 +#: templates/js/translated/sales_order.js:1017 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1006 +#: templates/js/translated/sales_order.js:1042 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1030 -#: templates/js/translated/sales_order.js:1529 +#: templates/js/translated/sales_order.js:1066 +#: templates/js/translated/sales_order.js:1565 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1048 +#: templates/js/translated/sales_order.js:1084 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1052 +#: templates/js/translated/sales_order.js:1088 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1219 +#: templates/js/translated/sales_order.js:1255 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1270 +#: templates/js/translated/sales_order.js:1306 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1271 +#: templates/js/translated/sales_order.js:1307 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1477 +#: templates/js/translated/sales_order.js:1513 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1569 +#: templates/js/translated/sales_order.js:1605 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1583 +#: templates/js/translated/sales_order.js:1619 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1584 +#: templates/js/translated/sales_order.js:1620 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1623 -#: templates/js/translated/sales_order.js:1710 -#: templates/js/translated/stock.js:1773 +#: templates/js/translated/sales_order.js:1659 +#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/stock.js:1776 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1631 -#: templates/js/translated/sales_order.js:1719 +#: templates/js/translated/sales_order.js:1667 +#: templates/js/translated/sales_order.js:1755 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2008 +#: templates/js/translated/sales_order.js:2044 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/sales_order.js:2012 +#: templates/js/translated/sales_order.js:2048 msgid "Purchase stock" msgstr "" -#: templates/js/translated/sales_order.js:2021 -#: templates/js/translated/sales_order.js:2209 +#: templates/js/translated/sales_order.js:2057 +#: templates/js/translated/sales_order.js:2245 msgid "Calculate price" msgstr "" -#: templates/js/translated/sales_order.js:2035 +#: templates/js/translated/sales_order.js:2071 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2074 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/sales_order.js:2109 +#: templates/js/translated/sales_order.js:2145 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2217 +#: templates/js/translated/sales_order.js:2253 msgid "Update Unit Price" msgstr "" @@ -13319,7 +13476,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:414 +#: templates/js/translated/stock.js:1042 users/models.py:392 msgid "Add" msgstr "" @@ -13327,180 +13484,180 @@ msgstr "" msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:1180 templates/js/translated/stock.js:3299 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1178 +#: templates/js/translated/stock.js:1181 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1224 +#: templates/js/translated/stock.js:1227 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1360 +#: templates/js/translated/stock.js:1363 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1362 +#: templates/js/translated/stock.js:1365 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1367 +#: templates/js/translated/stock.js:1370 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1447 +#: templates/js/translated/stock.js:1450 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1450 +#: templates/js/translated/stock.js:1453 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1473 +#: templates/js/translated/stock.js:1476 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1540 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1550 +#: templates/js/translated/stock.js:1553 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1562 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1713 +#: templates/js/translated/stock.js:1716 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1733 +#: templates/js/translated/stock.js:1736 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1765 +#: templates/js/translated/stock.js:1768 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1769 +#: templates/js/translated/stock.js:1772 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1777 +#: templates/js/translated/stock.js:1780 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1786 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1839 +#: templates/js/translated/stock.js:1842 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1848 +#: templates/js/translated/stock.js:1851 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1897 +#: templates/js/translated/stock.js:1900 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:1952 +#: templates/js/translated/stock.js:1953 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:1957 +#: templates/js/translated/stock.js:1958 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1969 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2012 +#: templates/js/translated/stock.js:2013 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2090 +#: templates/js/translated/stock.js:2091 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2095 +#: templates/js/translated/stock.js:2096 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2101 +#: templates/js/translated/stock.js:2102 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2103 +#: templates/js/translated/stock.js:2104 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2105 +#: templates/js/translated/stock.js:2106 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2108 +#: templates/js/translated/stock.js:2109 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2110 +#: templates/js/translated/stock.js:2111 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2114 +#: templates/js/translated/stock.js:2115 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2116 +#: templates/js/translated/stock.js:2117 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2123 +#: templates/js/translated/stock.js:2124 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2125 +#: templates/js/translated/stock.js:2126 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2129 +#: templates/js/translated/stock.js:2130 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2294 +#: templates/js/translated/stock.js:2295 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2342 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2469 +#: templates/js/translated/stock.js:2470 msgid "No stock items matching query" msgstr "" @@ -13973,6 +14130,22 @@ msgstr "" msgid "Show all notifications and history" msgstr "" +#: templates/pui_banner.html:9 +msgid "Platform UI - the new UI for InvenTree - provides more modern administration options." +msgstr "" + +#: templates/pui_banner.html:12 +msgid "Platform UI - the new UI for InvenTree - is ready to be tested." +msgstr "" + +#: templates/pui_banner.html:15 +msgid "Try it out now" +msgstr "" + +#: templates/pui_banner.html:15 +msgid "here" +msgstr "" + #: templates/qr_code.html:11 msgid "QR data not provided" msgstr "" @@ -14194,35 +14367,34 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:397 +#: users/models.py:375 msgid "Permission set" msgstr "" -#: users/models.py:406 +#: users/models.py:384 msgid "Group" msgstr "" -#: users/models.py:410 +#: users/models.py:388 msgid "View" msgstr "" -#: users/models.py:410 +#: users/models.py:388 msgid "Permission to view items" msgstr "" -#: users/models.py:414 +#: users/models.py:392 msgid "Permission to add items" msgstr "" -#: users/models.py:418 +#: users/models.py:396 msgid "Change" msgstr "" -#: users/models.py:420 +#: users/models.py:398 msgid "Permissions to edit items" msgstr "" -#: users/models.py:426 +#: users/models.py:404 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po index e846bd6b8d..e699750e46 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-04-20 13:19+0000\n" -"PO-Revision-Date: 2024-04-21 04:19\n" +"POT-Creation-Date: 2024-06-19 04:39+0000\n" +"PO-Revision-Date: 2024-06-22 04:56\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -17,11 +17,11 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 216\n" -#: InvenTree/api.py:255 +#: InvenTree/api.py:272 msgid "API endpoint not found" msgstr "API endpoint nebyl nalezen" -#: InvenTree/api.py:519 +#: InvenTree/api.py:520 msgid "User does not have permission to view this model" msgstr "Uživatel nemá právo zobrazit tento model" @@ -52,30 +52,30 @@ msgstr "Vyplněno neplatné množství ({exc})" msgid "Error details can be found in the admin panel" msgstr "Podrobnosti o chybě lze nalézt v panelu administrace" -#: InvenTree/fields.py:139 +#: InvenTree/fields.py:136 msgid "Enter date" msgstr "Zadejte datum" -#: InvenTree/fields.py:208 InvenTree/models.py:1021 build/serializers.py:438 -#: build/serializers.py:516 build/templates/build/sidebar.html:21 -#: company/models.py:847 company/templates/company/sidebar.html:37 -#: order/models.py:1283 order/templates/order/po_sidebar.html:11 +#: InvenTree/fields.py:205 InvenTree/models.py:918 build/serializers.py:452 +#: build/serializers.py:530 build/templates/build/sidebar.html:21 +#: company/models.py:817 company/templates/company/sidebar.html:37 +#: order/models.py:1296 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:3175 part/templates/part/part_sidebar.html:63 -#: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:226 stock/models.py:2332 stock/models.py:2449 -#: stock/serializers.py:501 stock/serializers.py:659 stock/serializers.py:755 -#: stock/serializers.py:805 stock/serializers.py:1114 stock/serializers.py:1203 -#: stock/serializers.py:1368 stock/templates/stock/stock_sidebar.html:25 +#: part/models.py:3183 part/templates/part/part_sidebar.html:63 +#: report/templates/report/inventree_build_order_report.html:172 +#: stock/admin.py:230 stock/models.py:2309 stock/models.py:2431 +#: stock/serializers.py:632 stock/serializers.py:790 stock/serializers.py:886 +#: stock/serializers.py:936 stock/serializers.py:1230 stock/serializers.py:1319 +#: stock/serializers.py:1484 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:1080 -#: templates/js/translated/purchase_order.js:2201 -#: templates/js/translated/return_order.js:776 -#: templates/js/translated/sales_order.js:1067 -#: templates/js/translated/sales_order.js:1982 -#: templates/js/translated/stock.js:1533 templates/js/translated/stock.js:2427 +#: templates/js/translated/part.js:1081 +#: templates/js/translated/purchase_order.js:2200 +#: templates/js/translated/return_order.js:775 +#: templates/js/translated/sales_order.js:1103 +#: templates/js/translated/sales_order.js:2018 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:2428 msgid "Notes" msgstr "Poznámky" @@ -120,19 +120,19 @@ msgstr "Potvrzení emailové adresy" msgid "You must type the same email each time." msgstr "Pokaždé musíte zadat stejný email." -#: InvenTree/forms.py:253 InvenTree/forms.py:261 +#: InvenTree/forms.py:248 InvenTree/forms.py:256 msgid "The provided primary email address is not valid." msgstr "Zadaná primární e-mailová adresa je neplatná." -#: InvenTree/forms.py:268 +#: InvenTree/forms.py:263 msgid "The provided email domain is not approved." msgstr "Zadaná e-mailová doména není povolena." -#: InvenTree/forms.py:395 +#: InvenTree/forms.py:390 msgid "Registration is disabled." msgstr "Registrace vypnuta." -#: InvenTree/helpers.py:525 order/models.py:541 order/models.py:743 +#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:764 msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" @@ -171,35 +171,35 @@ msgstr "Počet jedinečných sériových čísel ({len(serials)}) musí odpovíd msgid "Remove HTML tags from this value" msgstr "Odstranit HTML tagy z této hodnoty" -#: InvenTree/helpers_model.py:150 +#: InvenTree/helpers_model.py:140 msgid "Connection error" msgstr "Chyba spojení" -#: InvenTree/helpers_model.py:155 InvenTree/helpers_model.py:162 +#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 msgid "Server responded with invalid status code" msgstr "Server odpověděl s neplatným stavovým kódem" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:148 msgid "Exception occurred" msgstr "Došlo k výjimce" -#: InvenTree/helpers_model.py:168 +#: InvenTree/helpers_model.py:158 msgid "Server responded with invalid Content-Length value" msgstr "Server odpověděl s neplatnou hodnotou Content-Length" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:161 msgid "Image size is too large" msgstr "Velikost obrázku je příliš velká" -#: InvenTree/helpers_model.py:183 +#: InvenTree/helpers_model.py:173 msgid "Image download exceeded maximum size" msgstr "Stahování obrázku překročilo maximální velikost" -#: InvenTree/helpers_model.py:188 +#: InvenTree/helpers_model.py:178 msgid "Remote server returned empty response" msgstr "Vzdálený server vrátil prázdnou odpověď" -#: InvenTree/helpers_model.py:196 +#: InvenTree/helpers_model.py:186 msgid "Supplied URL is not a valid image file" msgstr "Zadaná URL adresa není platný soubor obrázku" @@ -296,42 +296,50 @@ msgid "Portuguese (Brazilian)" msgstr "Portugalština (Brazilská)" #: InvenTree/locales.py:41 +msgid "Romanian" +msgstr "Rumunština" + +#: InvenTree/locales.py:42 msgid "Russian" msgstr "Ruština" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:43 msgid "Slovak" msgstr "Slovenština" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:44 msgid "Slovenian" msgstr "Slovinština" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:45 msgid "Serbian" msgstr "Srbština" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:46 msgid "Swedish" msgstr "Švédština" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:47 msgid "Thai" msgstr "Thajština" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:48 msgid "Turkish" msgstr "Turečtina" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:49 +msgid "Ukrainian" +msgstr "Ukrajinština" + +#: InvenTree/locales.py:50 msgid "Vietnamese" msgstr "Vietnamština" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:51 msgid "Chinese (Simplified)" msgstr "Čínština (zjednodušená)" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:52 msgid "Chinese (Traditional)" msgstr "Čínština (tradiční)" @@ -340,156 +348,68 @@ msgstr "Čínština (tradiční)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Přihlásit se do aplikace" -#: InvenTree/magic_login.py:38 company/models.py:133 +#: InvenTree/magic_login.py:38 company/models.py:136 #: company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:107 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Chyba při ověření pluginu" -#: InvenTree/models.py:162 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadata musí být objekt python dict" -#: InvenTree/models.py:168 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Metadata pluginu" -#: InvenTree/models.py:169 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadat JSON pro použití externími pluginy" -#: InvenTree/models.py:399 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Nesprávně naformátovaný vzor" -#: InvenTree/models.py:406 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Neznámý formát klíče" -#: InvenTree/models.py:412 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Chybí požadovaný klíč" -#: InvenTree/models.py:423 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referenční pole nemůže být prázdné" -#: InvenTree/models.py:431 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referenční číslo musí odpovídat požadovanému vzoru" -#: InvenTree/models.py:462 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referenční číslo je příliš velké" -#: InvenTree/models.py:536 -msgid "Missing file" -msgstr "Chybějící soubor" - -#: InvenTree/models.py:537 -msgid "Missing external link" -msgstr "Chybějící externí odkaz" - -#: InvenTree/models.py:558 stock/models.py:2444 -#: templates/js/translated/attachment.js:119 -#: templates/js/translated/attachment.js:326 -msgid "Attachment" -msgstr "Příloha" - -#: InvenTree/models.py:559 -msgid "Select file to attach" -msgstr "Vyberte soubor k přiložení" - -#: InvenTree/models.py:567 common/models.py:3018 company/models.py:146 -#: company/models.py:457 company/models.py:514 company/models.py:830 -#: order/models.py:291 order/models.py:1288 order/models.py:1702 -#: part/admin.py:55 part/models.py:919 -#: part/templates/part/part_scheduling.html:11 -#: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:225 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2456 -#: templates/js/translated/purchase_order.js:2041 -#: templates/js/translated/purchase_order.js:2205 -#: templates/js/translated/return_order.js:780 -#: templates/js/translated/sales_order.js:1056 -#: templates/js/translated/sales_order.js:1987 -msgid "Link" -msgstr "Odkaz" - -#: InvenTree/models.py:568 build/models.py:315 part/models.py:920 -#: stock/models.py:819 -msgid "Link to external URL" -msgstr "Odkaz na externí URL" - -#: InvenTree/models.py:574 templates/js/translated/attachment.js:120 -#: templates/js/translated/attachment.js:341 -msgid "Comment" -msgstr "Komentář" - -#: InvenTree/models.py:575 -msgid "File comment" -msgstr "Komentář k souboru" - -#: InvenTree/models.py:583 InvenTree/models.py:584 common/models.py:2494 -#: common/models.py:2495 common/models.py:2719 common/models.py:2720 -#: common/models.py:2965 common/models.py:2966 part/models.py:3185 -#: part/models.py:3272 part/models.py:3365 part/models.py:3393 -#: plugin/models.py:250 plugin/models.py:251 -#: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3036 users/models.py:111 -msgid "User" -msgstr "Uživatel" - -#: InvenTree/models.py:588 -msgid "upload date" -msgstr "datum přidání" - -#: InvenTree/models.py:610 -msgid "Filename must not be empty" -msgstr "Název souboru nesmí být prázdný" - -#: InvenTree/models.py:621 -msgid "Invalid attachment directory" -msgstr "Neplatný adresář přílohy" - -#: InvenTree/models.py:651 -#, python-brace-format -msgid "Filename contains illegal character '{c}'" -msgstr "Název souboru obsahuje nepovolený znak '{c}'" - -#: InvenTree/models.py:654 -msgid "Filename missing extension" -msgstr "Chybějící přípona souboru" - -#: InvenTree/models.py:663 -msgid "Attachment with this filename already exists" -msgstr "Příloha s tímto názvem již existuje" - -#: InvenTree/models.py:670 -msgid "Error renaming file" -msgstr "Chyba při přejmenování souboru" - -#: InvenTree/models.py:846 +#: InvenTree/models.py:719 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:863 +#: InvenTree/models.py:736 msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:893 common/models.py:2706 common/models.py:3104 -#: common/serializers.py:370 company/models.py:613 label/models.py:120 -#: machine/models.py:24 part/models.py:855 part/models.py:3616 -#: plugin/models.py:41 report/models.py:176 stock/models.py:76 +#: InvenTree/models.py:766 common/models.py:2623 common/models.py:3036 +#: common/serializers.py:408 company/models.py:580 machine/models.py:24 +#: part/models.py:891 part/models.py:3639 plugin/models.py:51 +#: report/models.py:150 stock/models.py:73 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 -#: templates/InvenTree/settings/plugin.html:81 +#: 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 @@ -497,192 +417,188 @@ msgstr "Neplatný výběr" #: 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:1186 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1610 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1187 +#: templates/js/translated/part.js:1475 templates/js/translated/part.js:1611 #: templates/js/translated/part.js:2749 templates/js/translated/stock.js:2716 msgid "Name" msgstr "Název" -#: InvenTree/models.py:899 build/models.py:188 -#: build/templates/build/detail.html:24 common/models.py:136 -#: company/models.py:522 company/models.py:838 +#: InvenTree/models.py:772 build/models.py:220 +#: build/templates/build/detail.html:24 common/models.py:138 +#: company/models.py:509 company/models.py:808 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:127 -#: order/models.py:277 order/models.py:1316 part/admin.py:303 part/admin.py:414 -#: part/models.py:878 part/models.py:3631 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 order/models.py:289 +#: order/models.py:1329 part/admin.py:305 part/admin.py:408 part/models.py:914 +#: part/models.py:3654 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:189 -#: report/models.py:655 report/models.py:729 -#: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:55 stock/models.py:82 stock/templates/stock/location.html:125 +#: 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:79 stock/templates/stock/location.html:125 #: 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/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2137 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2139 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:1238 -#: templates/js/translated/part.js:1483 templates/js/translated/part.js:1621 -#: templates/js/translated/part.js:1958 templates/js/translated/part.js:2355 -#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2896 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1239 +#: templates/js/translated/part.js:1484 templates/js/translated/part.js:1622 +#: templates/js/translated/part.js:1959 templates/js/translated/part.js:2355 +#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2897 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1707 -#: templates/js/translated/purchase_order.js:1850 -#: templates/js/translated/purchase_order.js:2023 -#: templates/js/translated/return_order.js:314 -#: templates/js/translated/sales_order.js:802 -#: templates/js/translated/sales_order.js:1812 -#: templates/js/translated/stock.js:1512 templates/js/translated/stock.js:2057 +#: templates/js/translated/purchase_order.js:1706 +#: templates/js/translated/purchase_order.js:1849 +#: templates/js/translated/purchase_order.js:2022 +#: 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:1515 templates/js/translated/stock.js:2058 #: templates/js/translated/stock.js:2748 templates/js/translated/stock.js:2831 msgid "Description" msgstr "Popis" -#: InvenTree/models.py:900 stock/models.py:83 +#: InvenTree/models.py:773 stock/models.py:80 msgid "Description (optional)" msgstr "Popis (volitelně)" -#: InvenTree/models.py:909 +#: InvenTree/models.py:782 msgid "parent" msgstr "nadřazený" -#: InvenTree/models.py:915 templates/js/translated/part.js:2794 +#: InvenTree/models.py:788 templates/js/translated/part.js:2794 #: templates/js/translated/stock.js:2757 msgid "Path" msgstr "Cesta" -#: InvenTree/models.py:1021 +#: InvenTree/models.py:918 msgid "Markdown notes (optional)" msgstr "Poznámky (volitelné)" -#: InvenTree/models.py:1050 +#: InvenTree/models.py:947 msgid "Barcode Data" msgstr "Data čárového kódu" -#: InvenTree/models.py:1051 +#: InvenTree/models.py:948 msgid "Third party barcode data" msgstr "Data čárového kódu třetí strany" -#: InvenTree/models.py:1057 +#: InvenTree/models.py:954 msgid "Barcode Hash" msgstr "Hash čárového kódu" -#: InvenTree/models.py:1058 +#: InvenTree/models.py:955 msgid "Unique hash of barcode data" msgstr "Jedinečný hash dat čárového kódu" -#: InvenTree/models.py:1111 +#: InvenTree/models.py:1008 msgid "Existing barcode found" msgstr "Nalezen existující čárový kód" -#: InvenTree/models.py:1154 +#: InvenTree/models.py:1051 msgid "Server Error" msgstr "Chyba serveru" -#: InvenTree/models.py:1155 +#: InvenTree/models.py:1052 msgid "An error has been logged by the server." msgstr "Server zaznamenal chybu." -#: InvenTree/serializers.py:62 part/models.py:4169 +#: InvenTree/serializers.py:63 part/models.py:4192 msgid "Must be a valid number" msgstr "Musí být platné číslo" -#: InvenTree/serializers.py:99 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:2993 +#: InvenTree/serializers.py:100 company/models.py:186 +#: company/templates/company/company_base.html:112 part/models.py:3001 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Měna" -#: InvenTree/serializers.py:102 +#: InvenTree/serializers.py:103 msgid "Select currency from available options" msgstr "Vyberte měnu z dostupných možností" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:442 msgid "You do not have permission to change this user role." msgstr "Nemáte oprávnění měnit tuto uživatelskou roli." -#: InvenTree/serializers.py:453 +#: InvenTree/serializers.py:454 msgid "Only superusers can create new users" msgstr "Pouze superuživatelé mohou vytvářet nové uživatele" -#: InvenTree/serializers.py:472 +#: InvenTree/serializers.py:473 msgid "Your account has been created." msgstr "Váš účet byl vytvořen." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:475 msgid "Please use the password reset function to login" msgstr "Pro přihlášení použijte funkci obnovení hesla" -#: InvenTree/serializers.py:481 +#: InvenTree/serializers.py:482 msgid "Welcome to InvenTree" msgstr "Vítejte v InvenTree" -#: InvenTree/serializers.py:542 -msgid "Filename" -msgstr "Název souboru" - -#: InvenTree/serializers.py:576 +#: InvenTree/serializers.py:540 msgid "Invalid value" msgstr "Neplatná hodnota" -#: InvenTree/serializers.py:596 +#: InvenTree/serializers.py:560 msgid "Data File" msgstr "Datový soubor" -#: InvenTree/serializers.py:597 +#: InvenTree/serializers.py:561 msgid "Select data file for upload" msgstr "Vyberte datový soubor k nahrání" -#: InvenTree/serializers.py:614 +#: InvenTree/serializers.py:578 msgid "Unsupported file type" msgstr "Nepodporovaný typ souboru" -#: InvenTree/serializers.py:620 +#: InvenTree/serializers.py:584 msgid "File is too large" msgstr "Soubor je příliš velký" -#: InvenTree/serializers.py:641 +#: InvenTree/serializers.py:605 msgid "No columns found in file" msgstr "V souboru nebyly nalezeny žádné sloupce" -#: InvenTree/serializers.py:644 +#: InvenTree/serializers.py:608 msgid "No data rows found in file" msgstr "V souboru nebyly nalezeny žádné řádky s daty" -#: InvenTree/serializers.py:757 +#: InvenTree/serializers.py:721 msgid "No data rows provided" msgstr "Nebyly zadány žádné řádky s daty" -#: InvenTree/serializers.py:760 +#: InvenTree/serializers.py:724 msgid "No data columns supplied" msgstr "Nebyly zadány žádné sloupce s daty" -#: InvenTree/serializers.py:827 +#: InvenTree/serializers.py:791 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Chybí povinný sloupec: '{name}'" -#: InvenTree/serializers.py:836 +#: InvenTree/serializers.py:800 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicitní sloupec: '{col}'" -#: InvenTree/serializers.py:859 +#: InvenTree/serializers.py:840 msgid "Remote Image" msgstr "Vzdálený obraz" -#: InvenTree/serializers.py:860 +#: InvenTree/serializers.py:841 msgid "URL of remote image file" msgstr "URL souboru vzdáleného obrázku" -#: InvenTree/serializers.py:878 +#: InvenTree/serializers.py:859 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:1161 +#: InvenTree/status.py:66 part/serializers.py:1166 msgid "Background worker check failed" msgstr "Kontrola procesů na pozadí se nezdařila" @@ -694,223 +610,27 @@ msgstr "Email backend není nakonfigurován" msgid "InvenTree system health checks failed" msgstr "Kontroly zdraví systému InvenTree selhaly" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 -#: InvenTree/status_codes.py:182 generic/states/tests.py:17 -#: templates/js/translated/table_filters.js:598 -msgid "Pending" -msgstr "Nevyřízeno" - -#: InvenTree/status_codes.py:13 generic/states/tests.py:18 -msgid "Placed" -msgstr "Umístěno" - -#: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:169 generic/states/tests.py:19 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:161 -msgid "Complete" -msgstr "Hotovo" - -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 -msgid "Cancelled" -msgstr "Zrušeno" - -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 -#: InvenTree/status_codes.py:67 -msgid "Lost" -msgstr "Ztraceno" - -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 -#: InvenTree/status_codes.py:73 -msgid "Returned" -msgstr "Vráceno" - -#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 -msgid "In Progress" -msgstr "Zpracovává se" - -#: InvenTree/status_codes.py:43 order/models.py:1564 -#: templates/js/translated/sales_order.js:1523 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1957 -msgid "Shipped" -msgstr "Odesláno" - -#: InvenTree/status_codes.py:62 -msgid "OK" -msgstr "OK" - -#: InvenTree/status_codes.py:63 -msgid "Attention needed" -msgstr "Vyžaduje pozornost" - -#: InvenTree/status_codes.py:64 -msgid "Damaged" -msgstr "Poškozeno" - -#: InvenTree/status_codes.py:65 -msgid "Destroyed" -msgstr "Zničeno" - -#: InvenTree/status_codes.py:66 -msgid "Rejected" -msgstr "Odmítnuto" - -#: InvenTree/status_codes.py:70 -msgid "Quarantined" -msgstr "V karanténě" - -#: InvenTree/status_codes.py:91 -msgid "Legacy stock tracking entry" -msgstr "Původní položka sledování zásob" - -#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544 -msgid "Stock item created" -msgstr "Položka zásob vytvořena" - -#: InvenTree/status_codes.py:96 -msgid "Edited stock item" -msgstr "Položka zásob upravena" - -#: InvenTree/status_codes.py:97 -msgid "Assigned serial number" -msgstr "Přiřazeno výrobní číslo" - -#: InvenTree/status_codes.py:100 -msgid "Stock counted" -msgstr "Stav zásob sečten" - -#: InvenTree/status_codes.py:101 -msgid "Stock manually added" -msgstr "Zásoba přidána ručně" - -#: InvenTree/status_codes.py:102 -msgid "Stock manually removed" -msgstr "Zásoba odebrána ručně" - -#: InvenTree/status_codes.py:105 -msgid "Location changed" -msgstr "Umístění změněno" - -#: InvenTree/status_codes.py:106 -msgid "Stock updated" -msgstr "Stav zásob byl aktualizován" - -#: InvenTree/status_codes.py:109 -msgid "Installed into assembly" -msgstr "Nainstalováno do sestavy" - -#: InvenTree/status_codes.py:110 -msgid "Removed from assembly" -msgstr "Odstraněno ze sestavy" - -#: InvenTree/status_codes.py:112 -msgid "Installed component item" -msgstr "Instalovaná položka komponenty" - -#: InvenTree/status_codes.py:113 -msgid "Removed component item" -msgstr "Odstraněná komponenta" - -#: InvenTree/status_codes.py:116 -msgid "Split from parent item" -msgstr "Rozdělit od nadřazené položky" - -#: InvenTree/status_codes.py:117 -msgid "Split child item" -msgstr "Rozdělit podřazený předmět" - -#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1855 -msgid "Merged stock items" -msgstr "Sloučené položky zásob" - -#: InvenTree/status_codes.py:123 -msgid "Converted to variant" -msgstr "Převedeno na variantu" - -#: InvenTree/status_codes.py:126 -msgid "Build order output created" -msgstr "Výstup objednávky byl vytvořen" - -#: InvenTree/status_codes.py:127 -msgid "Build order output completed" -msgstr "Výstup objednávky sestavení dokončen" - -#: InvenTree/status_codes.py:128 -msgid "Build order output rejected" -msgstr "Výstup objednávky sestavení byl odmítnut" - -#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1761 -msgid "Consumed by build order" -msgstr "Spotřebováno podle objednávky" - -#: InvenTree/status_codes.py:132 -msgid "Shipped against Sales Order" -msgstr "Odesláno v souladu se zákaznickou objednávkou" - -#: InvenTree/status_codes.py:135 -msgid "Received against Purchase Order" -msgstr "Přijato proti objednávce" - -#: InvenTree/status_codes.py:138 -msgid "Returned against Return Order" -msgstr "Vráceno proti vratce" - -#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375 -msgid "Sent to customer" -msgstr "Odesláno zákazníkovi" - -#: InvenTree/status_codes.py:142 -msgid "Returned from customer" -msgstr "Vráceno od zákazníka" - -#: InvenTree/status_codes.py:149 -msgid "Production" -msgstr "Výroba" - -#: InvenTree/status_codes.py:185 -msgid "Return" -msgstr "Vrátit zpět" - -#: InvenTree/status_codes.py:188 -msgid "Repair" -msgstr "Oprava" - -#: InvenTree/status_codes.py:191 -msgid "Replace" -msgstr "Náhrada" - -#: InvenTree/status_codes.py:194 -msgid "Refund" -msgstr "Vrácení peněz" - -#: InvenTree/status_codes.py:197 -msgid "Reject" -msgstr "Odmítnout" - -#: InvenTree/templatetags/inventree_extras.py:183 +#: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Neznámá databáze" -#: InvenTree/validators.py:31 InvenTree/validators.py:33 +#: InvenTree/validators.py:32 InvenTree/validators.py:34 msgid "Invalid physical unit" msgstr "Neplatná fyzikální jednotka" -#: InvenTree/validators.py:39 +#: InvenTree/validators.py:40 msgid "Not a valid currency code" msgstr "Neplatný kód měny" -#: InvenTree/validators.py:121 InvenTree/validators.py:137 +#: InvenTree/validators.py:118 InvenTree/validators.py:134 msgid "Overage value must not be negative" msgstr "Přidaná hodnota nesmí být záporná" -#: InvenTree/validators.py:139 +#: InvenTree/validators.py:136 msgid "Overage must not exceed 100%" msgstr "Nesmí přesáhnout 100%" -#: InvenTree/validators.py:145 +#: InvenTree/validators.py:142 msgid "Invalid value for overage" msgstr "Neplatná hodnota překročení" @@ -938,62 +658,62 @@ msgstr "Informace o systému" msgid "About InvenTree" msgstr "O InvenTree" -#: build/api.py:238 +#: build/api.py:255 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:282 part/models.py:4047 templates/js/translated/bom.js:997 -#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2521 +#: build/api.py:299 part/models.py:4070 templates/js/translated/bom.js:997 +#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Spotřební materiál" -#: build/api.py:283 part/models.py:4041 part/templates/part/upload_bom.html:58 +#: build/api.py:300 part/models.py:4064 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 -#: templates/js/translated/build.js:2530 +#: templates/js/translated/build.js:2529 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 msgid "Optional" msgstr "Volitelné" -#: build/api.py:284 templates/js/translated/table_filters.js:408 +#: build/api.py:301 templates/js/translated/table_filters.js:408 #: templates/js/translated/table_filters.js:579 msgid "Tracked" msgstr "Sledováno" -#: build/api.py:286 part/admin.py:144 templates/js/translated/build.js:1741 -#: templates/js/translated/build.js:2630 -#: templates/js/translated/sales_order.js:1929 +#: build/api.py:303 part/admin.py:144 templates/js/translated/build.js:1744 +#: templates/js/translated/build.js:2629 +#: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Přiděleno" -#: build/api.py:294 company/models.py:902 company/serializers.py:383 +#: build/api.py:311 company/models.py:872 company/serializers.py:359 #: 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:2562 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2561 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:228 -#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 -#: templates/js/translated/part.js:699 +#: templates/js/translated/model_renderers.js:234 +#: templates/js/translated/part.js:693 templates/js/translated/part.js:695 +#: templates/js/translated/part.js:700 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" msgstr "Dostupné" -#: build/models.py:74 build/templates/build/build_base.html:9 +#: build/models.py:85 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 -#: report/templates/report/inventree_build_order_base.html:105 -#: templates/email/build_order_completed.html:16 +#: report/templates/report/inventree_build_order_report.html:105 +#: stock/serializers.py:82 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 #: templates/js/translated/build.js:972 templates/js/translated/stock.js:2892 msgid "Build Order" msgstr "Vytvořit objednávku" -#: build/models.py:75 build/templates/build/build_base.html:13 +#: build/models.py:86 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 @@ -1004,715 +724,763 @@ msgstr "Vytvořit objednávku" msgid "Build Orders" msgstr "Vytvořené objednávky" -#: build/models.py:116 +#: build/models.py:133 msgid "Invalid choice for parent build" msgstr "Neplatná volba nadřazeného sestavení" -#: build/models.py:127 order/models.py:239 +#: build/models.py:144 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:133 +#: build/models.py:150 msgid "Build order part cannot be changed" msgstr "Díly obědnávky sestavení nemohou být změněny" -#: build/models.py:179 +#: build/models.py:211 msgid "Build Order Reference" msgstr "Referenční číslo objednávky" -#: build/models.py:180 order/models.py:442 order/models.py:898 -#: order/models.py:1276 order/models.py:1996 part/admin.py:417 -#: part/models.py:4062 part/templates/part/upload_bom.html:54 +#: build/models.py:212 order/models.py:463 order/models.py:926 +#: order/models.py:1289 order/models.py:2020 part/admin.py:411 +#: part/models.py:4085 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 -#: report/templates/report/inventree_po_report_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:26 -#: report/templates/report/inventree_so_report_base.html:28 +#: 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:2513 templates/js/translated/order.js:291 +#: templates/js/translated/build.js:2512 templates/js/translated/order.js:291 #: templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2066 -#: templates/js/translated/return_order.js:729 -#: templates/js/translated/sales_order.js:1818 +#: templates/js/translated/purchase_order.js:2065 +#: templates/js/translated/return_order.js:728 +#: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Reference" -#: build/models.py:191 +#: build/models.py:223 msgid "Brief description of the build (optional)" msgstr "Stručný popis sestavení (nepovinné)" -#: build/models.py:199 build/templates/build/build_base.html:183 +#: build/models.py:231 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Nadřazená sestava" -#: build/models.py:200 +#: build/models.py:232 msgid "BuildOrder to which this build is allocated" msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" -#: build/models.py:205 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1056 order/api.py:817 -#: order/models.py:1401 order/models.py:1544 order/models.py:1545 -#: part/api.py:1547 part/api.py:1841 part/models.py:390 part/models.py:3004 -#: part/models.py:3148 part/models.py:3292 part/models.py:3315 -#: part/models.py:3336 part/models.py:3358 part/models.py:3468 -#: part/models.py:3764 part/models.py:3920 part/models.py:4013 -#: part/models.py:4374 part/serializers.py:1107 part/serializers.py:1713 +#: build/models.py:237 build/templates/build/build_base.html:97 +#: build/templates/build/detail.html:29 company/models.py:1026 order/api.py:805 +#: order/models.py:1414 order/models.py:1559 order/models.py:1560 +#: part/api.py:1478 part/api.py:1772 part/models.py:395 part/models.py:3012 +#: part/models.py:3156 part/models.py:3303 part/models.py:3324 +#: part/models.py:3346 part/models.py:3477 part/models.py:3787 +#: part/models.py:3943 part/models.py:4036 part/models.py:4395 +#: part/serializers.py:1112 part/serializers.py:1718 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_base.html:109 -#: report/templates/report/inventree_po_report_base.html:27 -#: report/templates/report/inventree_return_order_report_base.html:24 -#: report/templates/report/inventree_slr_report.html:102 -#: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:267 stock/serializers.py:689 -#: templates/InvenTree/search.html:82 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:109 stock/serializers.py:157 stock/serializers.py:423 +#: stock/serializers.py:820 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:546 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1309 templates/js/translated/build.js:1740 -#: templates/js/translated/build.js:2160 templates/js/translated/build.js:2333 +#: templates/js/translated/build.js:1312 templates/js/translated/build.js:1743 +#: templates/js/translated/build.js:2162 templates/js/translated/build.js:2335 #: 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:1943 templates/js/translated/part.js:2015 +#: templates/js/translated/part.js:1944 templates/js/translated/part.js:2016 #: templates/js/translated/part.js:2324 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1304 -#: templates/js/translated/purchase_order.js:1849 -#: templates/js/translated/purchase_order.js:2008 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:710 +#: templates/js/translated/purchase_order.js:1848 +#: templates/js/translated/purchase_order.js:2007 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:709 #: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1197 -#: templates/js/translated/sales_order.js:1598 -#: templates/js/translated/sales_order.js:1796 +#: 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:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1996 +#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1997 #: templates/js/translated/stock.js:2857 templates/js/translated/stock.js:3090 #: templates/js/translated/stock.js:3236 msgid "Part" msgstr "Díl" -#: build/models.py:213 +#: build/models.py:245 msgid "Select part to build" msgstr "Vyber téma, které chceš stavět" -#: build/models.py:218 +#: build/models.py:250 msgid "Sales Order Reference" msgstr "Referenční číslo prodejní objednávky" -#: build/models.py:222 +#: build/models.py:254 msgid "SalesOrder to which this build is allocated" msgstr "Prodejní příkaz, kterému je tato verze přidělena" -#: build/models.py:227 build/serializers.py:964 -#: templates/js/translated/build.js:1728 -#: templates/js/translated/sales_order.js:1185 +#: build/models.py:259 build/serializers.py:999 +#: templates/js/translated/build.js:1731 +#: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Umístění lokace" -#: build/models.py:231 +#: build/models.py:263 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:236 +#: build/models.py:268 msgid "Destination Location" msgstr "Cílová lokace" -#: build/models.py:240 +#: build/models.py:272 msgid "Select location where the completed items will be stored" msgstr "Vyberte lokaci, kde budou dokončené položky uloženy" -#: build/models.py:244 +#: build/models.py:276 msgid "Build Quantity" msgstr "Množství sestav" -#: build/models.py:247 +#: build/models.py:279 msgid "Number of stock items to build" msgstr "Počet skladových položek k sestavení" -#: build/models.py:251 +#: build/models.py:283 msgid "Completed items" msgstr "Dokončené položky" -#: build/models.py:253 +#: build/models.py:285 msgid "Number of stock items which have been completed" msgstr "Počet skladových položek, které byly dokončeny" -#: build/models.py:257 +#: build/models.py:289 msgid "Build Status" msgstr "Stav sestavení" -#: build/models.py:261 +#: build/models.py:293 msgid "Build status code" msgstr "Stavový kód sestavení" -#: build/models.py:270 build/serializers.py:280 order/serializers.py:577 -#: stock/models.py:823 stock/serializers.py:1333 +#: build/models.py:302 build/serializers.py:286 order/serializers.py:580 +#: stock/models.py:838 stock/serializers.py:74 stock/serializers.py:1449 #: templates/js/translated/purchase_order.js:1129 msgid "Batch Code" msgstr "Kód dávky" -#: build/models.py:274 build/serializers.py:281 +#: build/models.py:306 build/serializers.py:287 msgid "Batch code for this build output" msgstr "Dávkový kód pro tento výstup sestavení" -#: build/models.py:277 order/models.py:304 part/models.py:1079 -#: part/templates/part/part_base.html:310 -#: templates/js/translated/return_order.js:339 -#: templates/js/translated/sales_order.js:827 +#: build/models.py:309 order/models.py:316 order/serializers.py:119 +#: part/models.py:1115 part/templates/part/part_base.html:310 +#: templates/js/translated/return_order.js:338 +#: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Datum vytvoření" -#: build/models.py:281 +#: build/models.py:313 msgid "Target completion date" msgstr "Cílové datum dokončení" -#: build/models.py:282 +#: build/models.py:314 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:285 order/models.py:500 order/models.py:2041 -#: templates/js/translated/build.js:2245 +#: build/models.py:317 order/models.py:521 order/models.py:2065 +#: templates/js/translated/build.js:2247 msgid "Completion Date" msgstr "Datum dokončení" -#: build/models.py:291 +#: build/models.py:323 msgid "completed by" msgstr "dokončil" -#: build/models.py:299 templates/js/translated/build.js:2205 +#: build/models.py:331 templates/js/translated/build.js:2207 msgid "Issued by" msgstr "Vystavil" -#: build/models.py:300 +#: build/models.py:332 msgid "User who issued this build order" msgstr "Uživatel, který vydal tento příkaz k sestavení" -#: build/models.py:308 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:145 -#: order/models.py:322 order/templates/order/order_base.html:217 +#: build/models.py:340 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:147 +#: 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:228 part/models.py:1096 +#: order/templates/order/sales_order_base.html:232 part/models.py:1132 #: part/templates/part/part_base.html:390 -#: report/templates/report/inventree_build_order_base.html:158 +#: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2217 -#: templates/js/translated/purchase_order.js:1764 -#: templates/js/translated/return_order.js:359 +#: templates/js/translated/build.js:2219 +#: templates/js/translated/purchase_order.js:1763 +#: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Odpovědný" -#: build/models.py:309 +#: build/models.py:341 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:314 build/templates/build/detail.html:108 +#: build/models.py:346 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:180 -#: part/templates/part/part_base.html:383 stock/models.py:819 +#: order/templates/order/sales_order_base.html:184 +#: part/templates/part/part_base.html:383 stock/models.py:834 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externí odkaz" -#: build/models.py:319 +#: build/models.py:347 common/models.py:3178 part/models.py:956 +#: stock/models.py:834 +msgid "Link to external URL" +msgstr "Odkaz na externí URL" + +#: build/models.py:351 msgid "Build Priority" msgstr "Priorita sestavení" -#: build/models.py:322 +#: build/models.py:354 msgid "Priority of this build order" msgstr "Priorita tohoto příkazu k sestavení" -#: build/models.py:329 common/models.py:129 order/admin.py:18 -#: order/models.py:286 templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2142 -#: templates/js/translated/purchase_order.js:1711 -#: templates/js/translated/return_order.js:318 -#: templates/js/translated/sales_order.js:806 +#: build/models.py:361 common/models.py:131 order/admin.py:18 +#: order/models.py:298 templates/InvenTree/settings/settings_staff_js.html:146 +#: templates/js/translated/build.js:2144 +#: templates/js/translated/purchase_order.js:1710 +#: templates/js/translated/return_order.js:317 +#: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Kód projektu" -#: build/models.py:330 +#: build/models.py:362 msgid "Project code for this build order" msgstr "Kód projektu pro objednávku sestavení" -#: build/models.py:581 +#: build/models.py:595 build/models.py:660 +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:617 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Příkaz k sestavení {build} byl dokončen" -#: build/models.py:587 +#: build/models.py:623 msgid "A build order has been completed" msgstr "Příkaz k sestavení byl dokončen" -#: build/models.py:805 build/models.py:880 +#: build/models.py:849 build/models.py:934 msgid "No build output specified" msgstr "Nebyl specifikováno žádný výstup sestavení" -#: build/models.py:808 +#: build/models.py:852 msgid "Build output is already completed" msgstr "Výstup sestavení je již dokončen" -#: build/models.py:811 +#: build/models.py:855 msgid "Build output does not match Build Order" msgstr "Výstup sestavení neodpovídá příkazu sestavení" -#: build/models.py:884 build/serializers.py:223 build/serializers.py:262 -#: build/serializers.py:831 order/models.py:538 order/serializers.py:429 -#: order/serializers.py:572 part/serializers.py:1471 part/serializers.py:1871 -#: stock/models.py:662 stock/models.py:1474 stock/serializers.py:472 +#: build/models.py:938 build/serializers.py:219 build/serializers.py:268 +#: build/serializers.py:866 order/models.py:559 order/serializers.py:432 +#: order/serializers.py:575 part/serializers.py:1476 part/serializers.py:1876 +#: stock/models.py:677 stock/models.py:1495 stock/serializers.py:603 msgid "Quantity must be greater than zero" msgstr "Množství musí být vyšší než nula" -#: build/models.py:889 build/serializers.py:228 +#: build/models.py:943 build/serializers.py:224 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:946 build/serializers.py:533 +#: build/models.py:1003 build/serializers.py:547 #, 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:1308 +#: build/models.py:1344 +msgid "Build Order Line Item" +msgstr "Vytvořit položku řádku objednávky" + +#: build/models.py:1369 msgid "Build object" msgstr "Vytvořit objekt" -#: build/models.py:1322 build/models.py:1578 build/serializers.py:210 -#: build/serializers.py:247 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2516 -#: order/models.py:1259 order/models.py:1916 order/serializers.py:1335 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:416 -#: part/forms.py:48 part/models.py:3162 part/models.py:4035 +#: build/models.py:1383 build/models.py:1639 build/serializers.py:206 +#: build/serializers.py:253 build/templates/build/build_base.html:102 +#: build/templates/build/detail.html:34 common/models.py:2509 +#: order/models.py:1272 order/models.py:1931 order/serializers.py:1327 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 +#: part/forms.py:48 part/models.py:3170 part/models.py:4058 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 -#: report/templates/report/inventree_build_order_base.html:113 -#: report/templates/report/inventree_po_report_base.html:29 -#: report/templates/report/inventree_slr_report.html:104 -#: report/templates/report/inventree_so_report_base.html:29 -#: report/templates/report/inventree_test_report_base.html:90 -#: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:160 stock/serializers.py:463 +#: report/templates/report/inventree_build_order_report.html:113 +#: report/templates/report/inventree_purchase_order_report.html:29 +#: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_stock_location_report.html:104 +#: report/templates/report/inventree_test_report.html:90 +#: report/templates/report/inventree_test_report.html:170 stock/admin.py:159 +#: stock/serializers.py:125 stock/serializers.py:165 stock/serializers.py:594 #: 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:548 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:521 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1366 -#: templates/js/translated/build.js:1743 templates/js/translated/build.js:2355 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1369 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2357 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:961 -#: templates/js/translated/part.js:1811 templates/js/translated/part.js:3341 +#: templates/js/translated/model_renderers.js:236 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1812 templates/js/translated/part.js:3342 #: 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:1853 -#: templates/js/translated/purchase_order.js:2072 +#: templates/js/translated/purchase_order.js:1852 +#: templates/js/translated/purchase_order.js:2071 #: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1199 -#: templates/js/translated/sales_order.js:1518 -#: templates/js/translated/sales_order.js:1608 -#: templates/js/translated/sales_order.js:1698 -#: templates/js/translated/sales_order.js:1824 +#: 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:564 templates/js/translated/stock.js:702 #: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3021 #: templates/js/translated/stock.js:3104 msgid "Quantity" msgstr "Množství" -#: build/models.py:1323 +#: build/models.py:1384 msgid "Required quantity for build order" msgstr "Vyžadované množství pro objednávku" -#: build/models.py:1403 +#: build/models.py:1464 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:1412 +#: build/models.py:1473 #, 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:1422 order/models.py:1867 +#: build/models.py:1483 order/models.py:1882 msgid "Stock item is over-allocated" msgstr "Skladová položka je nadměrně zabrána" -#: build/models.py:1428 order/models.py:1870 +#: build/models.py:1489 order/models.py:1885 msgid "Allocation quantity must be greater than zero" msgstr "Zabrané množství musí být větší než nula" -#: build/models.py:1434 +#: build/models.py:1495 msgid "Quantity must be 1 for serialized stock" msgstr "Množství musí být 1 pro zřetězený sklad" -#: build/models.py:1493 +#: build/models.py:1554 msgid "Selected stock item does not match BOM line" msgstr "Vybraná položka zásob neodpovídá řádku BOM" -#: build/models.py:1565 build/serializers.py:811 order/serializers.py:1179 -#: order/serializers.py:1200 stock/serializers.py:566 stock/serializers.py:1052 -#: stock/serializers.py:1164 stock/templates/stock/item_base.html:10 +#: build/models.py:1626 build/serializers.py:846 order/serializers.py:1171 +#: order/serializers.py:1192 stock/models.py:358 stock/serializers.py:91 +#: stock/serializers.py:697 stock/serializers.py:1168 stock/serializers.py:1280 +#: 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:1742 +#: templates/js/translated/build.js:1745 #: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1198 -#: templates/js/translated/sales_order.js:1499 -#: templates/js/translated/sales_order.js:1504 -#: templates/js/translated/sales_order.js:1605 -#: templates/js/translated/sales_order.js:1692 +#: 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:677 templates/js/translated/stock.js:843 #: templates/js/translated/stock.js:2977 msgid "Stock Item" msgstr "Skladové položky" -#: build/models.py:1566 +#: build/models.py:1627 msgid "Source stock item" msgstr "Zdrojová skladová položka" -#: build/models.py:1579 +#: build/models.py:1640 msgid "Stock quantity to allocate to build" msgstr "Skladové množství pro sestavení" -#: build/models.py:1587 +#: build/models.py:1648 msgid "Install into" msgstr "Instalovat do" -#: build/models.py:1588 +#: build/models.py:1649 msgid "Destination stock item" msgstr "Cílová skladová položka" -#: build/serializers.py:160 build/serializers.py:840 -#: templates/js/translated/build.js:1319 +#: build/serializers.py:156 build/serializers.py:875 +#: templates/js/translated/build.js:1322 msgid "Build Output" msgstr "Vytvořit výstup" -#: build/serializers.py:172 +#: build/serializers.py:168 msgid "Build output does not match the parent build" msgstr "Vytvořený výstup neodpovídá nadřazenému sestavení" -#: build/serializers.py:176 +#: build/serializers.py:172 msgid "Output part does not match BuildOrder part" msgstr "Výstupní část se neshoduje s částí příkazu sestavení" -#: build/serializers.py:180 +#: build/serializers.py:176 msgid "This build output has already been completed" msgstr "Výstup sestavení je již dokončen" -#: build/serializers.py:191 +#: build/serializers.py:187 msgid "This build output is not fully allocated" msgstr "Tento stavební výstup není plně přiřazen" -#: build/serializers.py:211 build/serializers.py:248 +#: build/serializers.py:207 build/serializers.py:254 msgid "Enter quantity for build output" msgstr "Zadejte množství pro výstup sestavení" -#: build/serializers.py:269 +#: build/serializers.py:275 msgid "Integer quantity required for trackable parts" msgstr "Celé množství požadované pro sledovatelné díly" -#: build/serializers.py:272 +#: build/serializers.py:278 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:287 order/serializers.py:585 order/serializers.py:1339 -#: stock/serializers.py:483 templates/js/translated/purchase_order.js:1153 +#: build/serializers.py:293 order/serializers.py:588 order/serializers.py:1331 +#: stock/serializers.py:614 templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Sériová čísla" -#: build/serializers.py:288 +#: build/serializers.py:294 msgid "Enter serial numbers for build outputs" -msgstr "" +msgstr "Zadejte sériová čísla pro sestavení výstupů" -#: build/serializers.py:301 -msgid "Auto Allocate Serial Numbers" -msgstr "Automaticky zvolit sériová čísla" - -#: build/serializers.py:302 -msgid "Automatically allocate required items with matching serial numbers" -msgstr "" - -#: build/serializers.py:337 stock/api.py:995 -msgid "The following serial numbers already exist or are invalid" -msgstr "" - -#: build/serializers.py:388 build/serializers.py:450 build/serializers.py:539 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:426 build/serializers.py:498 order/serializers.py:561 -#: order/serializers.py:669 order/serializers.py:1675 part/serializers.py:1127 -#: stock/serializers.py:494 stock/serializers.py:654 stock/serializers.py:750 -#: stock/serializers.py:1196 stock/serializers.py:1452 -#: stock/templates/stock/item_base.html:394 +#: build/serializers.py:299 build/serializers.py:440 build/serializers.py:512 +#: order/serializers.py:564 order/serializers.py:672 order/serializers.py:1656 +#: part/serializers.py:1132 stock/serializers.py:100 stock/serializers.py:625 +#: stock/serializers.py:785 stock/serializers.py:881 stock/serializers.py:1312 +#: stock/serializers.py:1568 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 -#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:999 -#: templates/js/translated/build.js:2370 +#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:1001 +#: templates/js/translated/build.js:2372 #: templates/js/translated/purchase_order.js:1178 #: templates/js/translated/purchase_order.js:1268 -#: templates/js/translated/sales_order.js:1511 -#: templates/js/translated/sales_order.js:1619 -#: templates/js/translated/sales_order.js:1627 -#: templates/js/translated/sales_order.js:1706 +#: 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:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2201 #: templates/js/translated/stock.js:2871 msgid "Location" msgstr "Lokace" -#: build/serializers.py:427 +#: build/serializers.py:300 +msgid "Stock location for build output" +msgstr "Skladové umístění pro výstup sestavy" + +#: build/serializers.py:314 +msgid "Auto Allocate Serial Numbers" +msgstr "Automaticky zvolit sériová čísla" + +#: build/serializers.py:315 +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:330 +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:355 stock/api.py:1025 +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:402 build/serializers.py:464 build/serializers.py:553 +msgid "A list of build outputs must be provided" +msgstr "Musí být uveden seznam výstupů sestavy" + +#: build/serializers.py:441 msgid "Stock location for scrapped outputs" msgstr "Umístění zásob pro seškrábnuté výstupy" -#: build/serializers.py:433 +#: build/serializers.py:447 msgid "Discard Allocations" -msgstr "" +msgstr "Zahodit alokace" -#: build/serializers.py:434 +#: build/serializers.py:448 msgid "Discard any stock allocations for scrapped outputs" -msgstr "" +msgstr "Vyřadit všechny přidělené zásoby pro vyřazené výstupy" -#: build/serializers.py:439 +#: build/serializers.py:453 msgid "Reason for scrapping build output(s)" -msgstr "" +msgstr "Důvod vyřazení výstupu(ů) sestavy" -#: build/serializers.py:499 +#: build/serializers.py:513 msgid "Location for completed build outputs" -msgstr "" +msgstr "Umístění dokončených výstupů sestavy" -#: build/serializers.py:505 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:922 -#: order/models.py:2020 order/serializers.py:593 stock/admin.py:165 -#: stock/serializers.py:801 stock/serializers.py:1340 +#: build/serializers.py:519 build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:62 order/models.py:950 +#: order/models.py:2044 order/serializers.py:596 stock/admin.py:164 +#: stock/serializers.py:932 stock/serializers.py:1456 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2189 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2191 #: templates/js/translated/purchase_order.js:1308 -#: templates/js/translated/purchase_order.js:1723 -#: templates/js/translated/return_order.js:331 -#: templates/js/translated/sales_order.js:819 -#: templates/js/translated/stock.js:2175 templates/js/translated/stock.js:2995 +#: templates/js/translated/purchase_order.js:1722 +#: templates/js/translated/return_order.js:330 +#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/stock.js:2176 templates/js/translated/stock.js:2995 #: templates/js/translated/stock.js:3120 msgid "Status" msgstr "Stav" -#: build/serializers.py:511 +#: build/serializers.py:525 msgid "Accept Incomplete Allocation" -msgstr "" +msgstr "Přijmout neúplné přidělení" -#: build/serializers.py:512 +#: build/serializers.py:526 msgid "Complete outputs if stock has not been fully allocated" -msgstr "" +msgstr "Dokončit výstupy pokud zásoby nebyly plně přiděleny" -#: build/serializers.py:592 -msgid "Remove Allocated Stock" -msgstr "" +#: build/serializers.py:611 +msgid "Consume Allocated Stock" +msgstr "Spotřebovat přidělené zásoby" -#: build/serializers.py:593 -msgid "Subtract any stock which has already been allocated to this build" -msgstr "" +#: build/serializers.py:612 +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:599 +#: build/serializers.py:618 msgid "Remove Incomplete Outputs" -msgstr "" +msgstr "Odstranit neúplné výstupy" -#: build/serializers.py:600 +#: build/serializers.py:619 msgid "Delete any build outputs which have not been completed" -msgstr "" +msgstr "Odstranit všechny výstupy sestavy, které nebyly dokončeny" -#: build/serializers.py:627 +#: build/serializers.py:646 msgid "Not permitted" -msgstr "" +msgstr "Není povoleno" -#: build/serializers.py:628 +#: build/serializers.py:647 msgid "Accept as consumed by this build order" -msgstr "" +msgstr "Přijmout jako spotřebované touto objednávkou sestavy" -#: build/serializers.py:629 +#: build/serializers.py:648 msgid "Deallocate before completing this build order" -msgstr "" +msgstr "Uvolnit před dokončením této objednávky sestavy" -#: build/serializers.py:651 +#: build/serializers.py:678 msgid "Overallocated Stock" -msgstr "" +msgstr "Nadměrně přidělené zásoby" -#: build/serializers.py:653 +#: build/serializers.py:680 msgid "How do you want to handle extra stock items assigned to the build order" -msgstr "" +msgstr "Jak chcete zacházet s extra skladovými položkami přiřazenými k objednávce na sestavu" -#: build/serializers.py:663 +#: build/serializers.py:690 msgid "Some stock items have been overallocated" -msgstr "" +msgstr "Některé skladové položky byly nadměrně přiděleny" -#: build/serializers.py:668 +#: build/serializers.py:695 msgid "Accept Unallocated" -msgstr "" +msgstr "Přijmout nepřidělené" -#: build/serializers.py:669 +#: build/serializers.py:696 msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" +msgstr "Přijmout, že skladové položky nebyly plně přiřazeny k této objednávce sestavy" -#: build/serializers.py:679 templates/js/translated/build.js:315 +#: build/serializers.py:706 templates/js/translated/build.js:315 msgid "Required stock has not been fully allocated" -msgstr "" +msgstr "Požadované zásoby nebyly plně přiděleny" -#: build/serializers.py:684 order/serializers.py:297 order/serializers.py:1242 +#: build/serializers.py:711 order/serializers.py:300 order/serializers.py:1234 msgid "Accept Incomplete" -msgstr "" +msgstr "Přijmout neúplné" -#: build/serializers.py:685 +#: build/serializers.py:712 msgid "Accept that the required number of build outputs have not been completed" -msgstr "" +msgstr "Přijmout, že nebyl dokončen požadovaný počet výstupů sestavy" -#: build/serializers.py:695 templates/js/translated/build.js:319 +#: build/serializers.py:722 templates/js/translated/build.js:319 msgid "Required build quantity has not been completed" -msgstr "" +msgstr "Požadované množství sestavy nebylo dokončeno" -#: build/serializers.py:704 templates/js/translated/build.js:303 +#: build/serializers.py:731 templates/js/translated/build.js:303 msgid "Build order has incomplete outputs" -msgstr "" +msgstr "Objednávka sestavy má neúplné výstupy" -#: build/serializers.py:734 +#: build/serializers.py:769 msgid "Build Line" -msgstr "" +msgstr "Linka sestavy" -#: build/serializers.py:744 +#: build/serializers.py:779 msgid "Build output" -msgstr "" +msgstr "Výstup sestavy" -#: build/serializers.py:752 +#: build/serializers.py:787 msgid "Build output must point to the same build" -msgstr "" +msgstr "Výstup sestavy musí odkazovat na stejnou sestavu" -#: build/serializers.py:788 +#: build/serializers.py:823 msgid "Build Line Item" -msgstr "" +msgstr "Řádková položka sestavy" -#: build/serializers.py:802 +#: build/serializers.py:837 msgid "bom_item.part must point to the same part as the build order" -msgstr "" +msgstr "bom_item.part musí ukazovat na stejný díl jako objednávka sestavy" -#: build/serializers.py:817 stock/serializers.py:1065 +#: build/serializers.py:852 stock/serializers.py:1181 msgid "Item must be in stock" -msgstr "" +msgstr "Položka musí být skladem" -#: build/serializers.py:865 order/serializers.py:1233 +#: build/serializers.py:900 order/serializers.py:1225 #, python-brace-format msgid "Available quantity ({q}) exceeded" -msgstr "" +msgstr "Dostupné množství ({q}) překročeno" -#: build/serializers.py:871 +#: build/serializers.py:906 msgid "Build output must be specified for allocation of tracked parts" -msgstr "" +msgstr "Pro přidělení sledovaných dílů musí být zadán výstup sestavy" -#: build/serializers.py:878 +#: build/serializers.py:913 msgid "Build output cannot be specified for allocation of untracked parts" -msgstr "" +msgstr "Výstup sestavy nelze zadat pro přidělení nesledovaných dílů" -#: build/serializers.py:902 order/serializers.py:1485 +#: build/serializers.py:937 order/serializers.py:1477 msgid "Allocation items must be provided" -msgstr "" +msgstr "Položky přidělení musí být poskytnuty" -#: build/serializers.py:965 +#: build/serializers.py:1000 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" -msgstr "" +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:973 +#: build/serializers.py:1008 msgid "Exclude Location" msgstr "Vynechat lokace" -#: build/serializers.py:974 +#: build/serializers.py:1009 msgid "Exclude stock items from this selected location" -msgstr "" +msgstr "Vyloučit skladové položky z tohoto vybraného umístění" -#: build/serializers.py:979 +#: build/serializers.py:1014 msgid "Interchangeable Stock" -msgstr "" +msgstr "Zaměnitelné zásoby" -#: build/serializers.py:980 +#: build/serializers.py:1015 msgid "Stock items in multiple locations can be used interchangeably" -msgstr "" +msgstr "Skladové položky na více místech lze používat zaměnitelně" -#: build/serializers.py:985 +#: build/serializers.py:1020 msgid "Substitute Stock" -msgstr "" +msgstr "Náhradní zásoby" -#: build/serializers.py:986 +#: build/serializers.py:1021 msgid "Allow allocation of substitute parts" -msgstr "" +msgstr "Povolit přidělování náhradních dílů" -#: build/serializers.py:991 +#: build/serializers.py:1026 msgid "Optional Items" msgstr "Volitelné položky" -#: build/serializers.py:992 +#: build/serializers.py:1027 msgid "Allocate optional BOM items to build order" -msgstr "" +msgstr "Přiřazení volitelných BOM položek k objednávce sestavy" -#: build/serializers.py:1097 part/models.py:3930 part/models.py:4366 -#: stock/api.py:758 +#: build/serializers.py:1049 +msgid "Failed to start auto-allocation task" +msgstr "Nepodařilo se spustit úlohu automatického přidělování" + +#: build/serializers.py:1139 part/models.py:3953 part/models.py:4387 +#: stock/api.py:788 msgid "BOM Item" -msgstr "" +msgstr "BOM Položka" -#: build/serializers.py:1106 templates/js/translated/index.js:130 +#: build/serializers.py:1148 templates/js/translated/index.js:130 msgid "Allocated Stock" -msgstr "" +msgstr "Přidělené zásoby" -#: build/serializers.py:1111 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:817 part/serializers.py:1489 +#: build/serializers.py:1153 part/admin.py:132 part/bom.py:173 +#: part/serializers.py:820 part/serializers.py:1494 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2614 templates/js/translated/part.js:709 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/build.js:2613 templates/js/translated/part.js:710 +#: templates/js/translated/part.js:2149 #: templates/js/translated/table_filters.js:170 msgid "On Order" -msgstr "" +msgstr "Na objednávku" -#: build/serializers.py:1116 part/serializers.py:1491 -#: templates/js/translated/build.js:2618 +#: build/serializers.py:1158 part/serializers.py:1496 +#: templates/js/translated/build.js:2617 #: templates/js/translated/table_filters.js:360 msgid "In Production" -msgstr "" +msgstr "Ve výrobě" -#: build/serializers.py:1121 part/bom.py:172 part/serializers.py:1514 +#: build/serializers.py:1163 part/bom.py:172 part/serializers.py:1519 #: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1893 +#: templates/js/translated/sales_order.js:1929 msgid "Available Stock" -msgstr "" +msgstr "Dostupné zásoby" -#: build/tasks.py:172 +#: 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 +msgid "Pending" +msgstr "Nevyřízeno" + +#: build/status_codes.py:12 +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 +msgid "Cancelled" +msgstr "Zrušeno" + +#: build/status_codes.py:14 generic/states/tests.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 +msgid "Complete" +msgstr "Hotovo" + +#: build/tasks.py:184 msgid "Stock required for build order" -msgstr "" +msgstr "Zásoby potřebné pro objednávku sestavy" -#: build/tasks.py:189 +#: build/tasks.py:201 msgid "Overdue Build Order" -msgstr "" +msgstr "Opožděná objednávka sestavy" -#: build/tasks.py:194 +#: build/tasks.py:206 #, python-brace-format msgid "Build order {bo} is now overdue" -msgstr "" +msgstr "Objednávka sestavy {bo} je nyní opožděná" #: build/templates/build/build_base.html:18 msgid "Part thumbnail" -msgstr "" +msgstr "Miniatura dílu" #: build/templates/build/build_base.html:38 #: company/templates/company/supplier_part.html:35 @@ -1724,7 +1492,7 @@ msgstr "" #: stock/templates/stock/location.html:55 #: templates/js/translated/filters.js:335 msgid "Barcode actions" -msgstr "" +msgstr "Akce čárového kódu" #: build/templates/build/build_base.html:42 #: company/templates/company/supplier_part.html:39 @@ -1766,181 +1534,181 @@ msgstr "Přiřadit čárový kód" #: order/templates/order/return_order_base.html:55 #: order/templates/order/sales_order_base.html:55 msgid "Print actions" -msgstr "" +msgstr "Akce tisku" #: build/templates/build/build_base.html:60 msgid "Print build order report" -msgstr "" +msgstr "Tisk reportu o objednávce sestavy" #: build/templates/build/build_base.html:67 msgid "Build actions" -msgstr "" +msgstr "Akce sestavy" #: build/templates/build/build_base.html:71 msgid "Edit Build" -msgstr "" +msgstr "Upravit sestavu" #: build/templates/build/build_base.html:73 msgid "Cancel Build" -msgstr "" +msgstr "Zrušit sestavu" #: build/templates/build/build_base.html:76 msgid "Duplicate Build" -msgstr "" +msgstr "Duplikovat sestavu" #: build/templates/build/build_base.html:79 msgid "Delete Build" -msgstr "" +msgstr "Smazat sestavu" #: build/templates/build/build_base.html:84 #: build/templates/build/build_base.html:85 msgid "Complete Build" -msgstr "" +msgstr "Dokončit sestavu" #: build/templates/build/build_base.html:107 msgid "Build Description" -msgstr "" +msgstr "Popis sestavy" #: build/templates/build/build_base.html:117 msgid "No build outputs have been created for this build order" -msgstr "" +msgstr "Pro tuto objednávku sestavy nebyly vytvořeny žádné výstupy sestavy" #: build/templates/build/build_base.html:124 msgid "Build Order is ready to mark as completed" -msgstr "" +msgstr "Objednávka sestavy je připravena k označení jako dokončená" #: build/templates/build/build_base.html:129 msgid "Build Order cannot be completed as outstanding outputs remain" -msgstr "" +msgstr "Objednávku sestavy nelze dokončit, protože zbývají nevyřízené výstupy" #: build/templates/build/build_base.html:134 msgid "Required build quantity has not yet been completed" -msgstr "" +msgstr "Požadované množství sestavy ještě nebylo dokončeno" #: build/templates/build/build_base.html:139 msgid "Stock has not been fully allocated to this Build Order" -msgstr "" +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/detail.html:138 order/models.py:297 -#: order/models.py:1294 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:309 +#: order/models.py:1307 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:192 -#: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2237 templates/js/translated/part.js:1830 -#: templates/js/translated/purchase_order.js:1740 -#: templates/js/translated/purchase_order.js:2148 -#: templates/js/translated/return_order.js:347 -#: templates/js/translated/return_order.js:751 -#: templates/js/translated/sales_order.js:835 -#: templates/js/translated/sales_order.js:1867 +#: order/templates/order/sales_order_base.html:196 +#: report/templates/report/inventree_build_order_report.html:125 +#: templates/js/translated/build.js:2239 templates/js/translated/part.js:1831 +#: templates/js/translated/purchase_order.js:1739 +#: templates/js/translated/purchase_order.js:2147 +#: templates/js/translated/return_order.js:346 +#: templates/js/translated/return_order.js:750 +#: 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 #, python-format msgid "This build was due on %(target)s" -msgstr "" +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:122 +#: order/templates/order/sales_order_base.html:126 #: 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 msgid "Overdue" -msgstr "" +msgstr "Po splatnosti" #: build/templates/build/build_base.html:177 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" -msgstr "" +msgstr "Dokončené výstupy" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1507 order/models.py:1536 -#: order/models.py:1650 order/models.py:1804 +#: build/templates/build/detail.html:101 order/api.py:1463 order/models.py:845 +#: order/models.py:1551 order/models.py:1665 order/models.py:1819 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 -#: report/templates/report/inventree_build_order_base.html:135 -#: report/templates/report/inventree_so_report_base.html:14 +#: report/templates/report/inventree_build_order_report.html:135 +#: report/templates/report/inventree_sales_order_report.html:14 #: stock/templates/stock/item_base.html:369 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:769 -#: templates/js/translated/sales_order.js:992 +#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:1028 #: templates/js/translated/stock.js:2924 msgid "Sales Order" -msgstr "" +msgstr "Prodejní objednávka" #: build/templates/build/build_base.html:197 #: build/templates/build/detail.html:115 -#: report/templates/report/inventree_build_order_base.html:152 +#: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" -msgstr "" +msgstr "Vystavil" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2154 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2156 msgid "Priority" msgstr "Priorita" -#: build/templates/build/build_base.html:273 +#: build/templates/build/build_base.html:269 msgid "Delete Build Order" -msgstr "" +msgstr "Odstranit objednávku sestavy" -#: build/templates/build/build_base.html:283 +#: build/templates/build/build_base.html:279 msgid "Build Order QR Code" -msgstr "" +msgstr "QR kód objednávky sestavy" -#: build/templates/build/build_base.html:295 +#: build/templates/build/build_base.html:291 msgid "Link Barcode to Build Order" -msgstr "" +msgstr "Propojit čárový kód s objednávkou sestavy" #: build/templates/build/detail.html:15 msgid "Build Details" -msgstr "" +msgstr "Detaily sestavy" #: build/templates/build/detail.html:38 msgid "Stock Source" -msgstr "" +msgstr "Zdroj zásob" #: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." -msgstr "" +msgstr "Zásoby lze odebírat z jakéhokoli dostupného umístění." -#: build/templates/build/detail.html:49 order/models.py:1430 -#: templates/js/translated/purchase_order.js:2190 +#: build/templates/build/detail.html:49 order/models.py:1443 +#: templates/js/translated/purchase_order.js:2189 msgid "Destination" -msgstr "" +msgstr "Místo určení" #: build/templates/build/detail.html:56 msgid "Destination location not specified" -msgstr "" +msgstr "Místo určení není specifikováno" #: build/templates/build/detail.html:73 msgid "Allocated Parts" -msgstr "" +msgstr "Přidělené díly" -#: build/templates/build/detail.html:80 stock/admin.py:163 +#: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1377 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/build.js:1380 +#: templates/js/translated/model_renderers.js:241 #: templates/js/translated/purchase_order.js:1274 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:2190 #: templates/js/translated/stock.js:3127 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" -msgstr "" +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:186 -#: templates/js/translated/build.js:2197 +#: order/templates/order/sales_order_base.html:190 +#: templates/js/translated/build.js:2199 msgid "Created" msgstr "Vytvořeno" @@ -1949,79 +1717,79 @@ msgid "No target date set" msgstr "Nenastaveno cílené datum" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:202 +#: order/templates/order/sales_order_base.html:206 #: templates/js/translated/table_filters.js:689 msgid "Completed" msgstr "Dokončeno" #: build/templates/build/detail.html:153 msgid "Build not complete" -msgstr "" +msgstr "Sestava není dokončena" #: build/templates/build/detail.html:164 build/templates/build/sidebar.html:17 msgid "Child Build Orders" -msgstr "" +msgstr "Podřízené objednávky sestavy" #: build/templates/build/detail.html:177 msgid "Allocate Stock to Build" -msgstr "" +msgstr "Přiděleit zásoby k sestavě" #: build/templates/build/detail.html:181 msgid "Deallocate stock" -msgstr "" +msgstr "Uvolnění zásob" #: build/templates/build/detail.html:182 msgid "Deallocate Stock" -msgstr "" +msgstr "Uvolnění zásob" #: build/templates/build/detail.html:184 msgid "Automatically allocate stock to build" -msgstr "" +msgstr "Automaticky přiřadit zásoby k sestavě" #: build/templates/build/detail.html:185 msgid "Auto Allocate" -msgstr "" +msgstr "Automaticky přiřadit" #: build/templates/build/detail.html:187 msgid "Manually allocate stock to build" -msgstr "" +msgstr "Manuálně přiřadit zásoby k sestavě" #: build/templates/build/detail.html:188 build/templates/build/sidebar.html:8 msgid "Allocate Stock" -msgstr "" +msgstr "Přidělit zásoby" #: build/templates/build/detail.html:191 msgid "Order required parts" -msgstr "" +msgstr "Objednat požadované díly" #: build/templates/build/detail.html:192 #: templates/js/translated/purchase_order.js:795 msgid "Order Parts" -msgstr "" +msgstr "Objednat díly" #: build/templates/build/detail.html:205 msgid "Available stock has been filtered based on specified source location for this build order" -msgstr "" +msgstr "Dostupné skladové zásoby byly vyfiltrovány na základě zadaného místa zdroje pro tuto objednávku sestavy" #: build/templates/build/detail.html:215 msgid "Incomplete Build Outputs" -msgstr "" +msgstr "Neúplné výstupy sestavy" #: build/templates/build/detail.html:219 msgid "Create new build output" -msgstr "" +msgstr "Vytvořit nový výstup sestavy" #: build/templates/build/detail.html:220 msgid "New Build Output" -msgstr "" +msgstr "Nový výstup sestavy" #: build/templates/build/detail.html:237 build/templates/build/sidebar.html:15 msgid "Consumed Stock" -msgstr "" +msgstr "Spotřebované zásoby" #: build/templates/build/detail.html:249 msgid "Completed Build Outputs" -msgstr "" +msgstr "Dokončené výstupy sestavy" #: build/templates/build/detail.html:261 build/templates/build/sidebar.html:19 #: company/templates/company/detail.html:229 @@ -2037,52 +1805,80 @@ msgstr "" #: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" -msgstr "" +msgstr "Přílohy" #: build/templates/build/detail.html:276 msgid "Build Notes" -msgstr "" +msgstr "Poznámky k sestavě" -#: build/templates/build/detail.html:434 +#: build/templates/build/detail.html:426 msgid "Allocation Complete" -msgstr "" +msgstr "Přidělení dokončeno" -#: build/templates/build/detail.html:435 +#: build/templates/build/detail.html:427 msgid "All lines have been fully allocated" -msgstr "" +msgstr "Všechny řádky byly plně přiděleny" #: build/templates/build/index.html:18 part/templates/part/detail.html:319 msgid "New Build Order" -msgstr "" +msgstr "Objednávka nové sestavy" #: build/templates/build/sidebar.html:5 msgid "Build Order Details" -msgstr "" +msgstr "Podrobnosti o objednávce sestavy" #: build/templates/build/sidebar.html:10 msgid "Incomplete Outputs" -msgstr "" +msgstr "Neúplné výstupy" + +#: common/api.py:689 +msgid "Is Link" +msgstr "Je odkaz" + +#: common/api.py:697 +msgid "Is File" +msgstr "Je soubor" + +#: common/api.py:739 +msgid "User does not have permission to delete this attachment" +msgstr "Uživatel nemá oprávnění k odstranění této přílohy" + +#: common/currency.py:130 +msgid "Invalid currency code" +msgstr "Neplatný kód měny" + +#: common/currency.py:132 +msgid "Duplicate currency code" +msgstr "Duplicitní kód měny" + +#: common/currency.py:137 +msgid "No valid currency codes provided" +msgstr "Nejsou uvedeny žádné platné kódy měn" + +#: common/currency.py:154 +msgid "No plugin" +msgstr "Žádný plugin" #: common/files.py:63 #, python-brace-format msgid "Unsupported file format: {fmt}" -msgstr "" +msgstr "Nepodporovaný formát souboru: {fmt}" #: common/files.py:65 msgid "Error reading file (invalid encoding)" -msgstr "" +msgstr "Chyba při čtení souboru (neplatné kódování)" #: common/files.py:70 msgid "Error reading file (invalid format)" -msgstr "" +msgstr "Chyba při čtení souboru (neplatný formát)" #: common/files.py:72 msgid "Error reading file (incorrect dimension)" -msgstr "" +msgstr "Chyba při čtení souboru (nesprávný rozměr)" #: common/files.py:74 msgid "Error reading file (data could be corrupted)" -msgstr "" +msgstr "Chyba při čtení souboru (data mohou být poškozena)" #: common/forms.py:12 msgid "File" @@ -2090,1493 +1886,1523 @@ msgstr "Soubor" #: common/forms.py:12 msgid "Select file to upload" -msgstr "" +msgstr "Vybrat soubor k nahrání" #: common/forms.py:25 msgid "{name.title()} File" -msgstr "" +msgstr "{name.title()} Soubor" #: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "Vyberte {name} soubor k nahrání" -#: common/models.py:71 +#: common/models.py:73 msgid "Updated" -msgstr "" +msgstr "Aktualizováno" -#: common/models.py:72 +#: common/models.py:74 msgid "Timestamp of last update" -msgstr "" +msgstr "Časové razítko poslední aktualizace" -#: common/models.py:105 +#: common/models.py:107 msgid "Site URL is locked by configuration" -msgstr "" +msgstr "Adresa URL webu je uzamčena konfigurací" -#: common/models.py:130 +#: common/models.py:132 msgid "Unique project code" -msgstr "" +msgstr "Jedinečný kód projektu" -#: common/models.py:137 +#: common/models.py:139 msgid "Project description" -msgstr "" +msgstr "Popis projektu" -#: common/models.py:146 +#: common/models.py:148 msgid "User or group responsible for this project" -msgstr "" +msgstr "Uživatel nebo skupina odpovědná za tento projekt" #: common/models.py:765 msgid "Settings key (must be unique - case insensitive)" -msgstr "" +msgstr "Klíč nastavení (musí být unikátní - rozlišuje malá a velká písmena)" #: common/models.py:769 msgid "Settings value" -msgstr "" +msgstr "Hodnota nastavení" #: common/models.py:821 msgid "Chosen value is not a valid option" -msgstr "" +msgstr "Zvolená hodnota není platnou možností" #: common/models.py:837 msgid "Value must be a boolean value" -msgstr "" +msgstr "Hodnota musí být logická hodnota" #: common/models.py:845 msgid "Value must be an integer value" -msgstr "" +msgstr "Hodnota musí být celé číslo" #: common/models.py:882 msgid "Key string must be unique" -msgstr "" +msgstr "Klíčový text musí být jedinečný" #: common/models.py:1114 msgid "No group" -msgstr "" +msgstr "Žádná skupina" -#: common/models.py:1157 -msgid "An empty domain is not allowed." -msgstr "" - -#: common/models.py:1159 -#, python-brace-format -msgid "Invalid domain name: {domain}" -msgstr "" - -#: common/models.py:1171 -msgid "No plugin" -msgstr "" - -#: common/models.py:1259 +#: common/models.py:1213 msgid "Restart required" -msgstr "" +msgstr "Je vyžadován restart" -#: common/models.py:1261 +#: common/models.py:1215 msgid "A setting has been changed which requires a server restart" -msgstr "" +msgstr "Bylo změněno nastavení, které vyžaduje restart serveru" -#: common/models.py:1268 +#: common/models.py:1222 msgid "Pending migrations" -msgstr "" +msgstr "Nevyřízené migrace" -#: common/models.py:1269 +#: common/models.py:1223 msgid "Number of pending database migrations" -msgstr "" +msgstr "Počet nevyřízených migrací databáze" -#: common/models.py:1274 +#: common/models.py:1228 msgid "Server Instance Name" -msgstr "" +msgstr "Název instance serveru" -#: common/models.py:1276 +#: common/models.py:1230 msgid "String descriptor for the server instance" -msgstr "" +msgstr "Textový popisovač pro instanci serveru" -#: common/models.py:1280 +#: common/models.py:1234 msgid "Use instance name" -msgstr "" +msgstr "Použít název instance" -#: common/models.py:1281 +#: common/models.py:1235 msgid "Use the instance name in the title-bar" -msgstr "" +msgstr "Použít název instance v liště" -#: common/models.py:1286 +#: common/models.py:1240 msgid "Restrict showing `about`" -msgstr "" +msgstr "Omezit zobrazování `o aplikaci`" -#: common/models.py:1287 +#: common/models.py:1241 msgid "Show the `about` modal only to superusers" -msgstr "" +msgstr "Zobrazovat okno `o aplikaci` pouze superuživatelům" -#: common/models.py:1292 company/models.py:108 company/models.py:109 +#: common/models.py:1246 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Jméno společnosti" -#: common/models.py:1293 +#: common/models.py:1247 msgid "Internal company name" -msgstr "" +msgstr "Interní název společnosti" -#: common/models.py:1297 +#: common/models.py:1251 msgid "Base URL" -msgstr "" +msgstr "Základní URL" -#: common/models.py:1298 +#: common/models.py:1252 msgid "Base URL for server instance" -msgstr "" +msgstr "Základní URL pro instanci serveru" -#: common/models.py:1304 +#: common/models.py:1258 msgid "Default Currency" msgstr "Výchozí měna" -#: common/models.py:1305 +#: common/models.py:1259 msgid "Select base currency for pricing calculations" -msgstr "" +msgstr "Vyberte základní měnu pro cenové kalkulace" -#: common/models.py:1311 +#: common/models.py:1265 +msgid "Supported Currencies" +msgstr "Podporované měny" + +#: common/models.py:1266 +msgid "List of supported currency codes" +msgstr "Seznam podporovaných kódů měn" + +#: common/models.py:1272 msgid "Currency Update Interval" -msgstr "" +msgstr "Interval aktualizace měny" -#: common/models.py:1313 +#: common/models.py:1274 msgid "How often to update exchange rates (set to zero to disable)" -msgstr "" +msgstr "Jak často aktualizovat směnné kurzy (pro vypnutí nastavte na nulu)" -#: common/models.py:1316 common/models.py:1372 common/models.py:1385 -#: common/models.py:1393 common/models.py:1402 common/models.py:1411 -#: common/models.py:1613 common/models.py:1635 common/models.py:1750 -#: common/models.py:2053 +#: common/models.py:1277 common/models.py:1333 common/models.py:1346 +#: common/models.py:1354 common/models.py:1363 common/models.py:1372 +#: common/models.py:1590 common/models.py:1612 common/models.py:1727 +#: common/models.py:2046 msgid "days" -msgstr "" +msgstr "dny" -#: common/models.py:1320 +#: common/models.py:1281 msgid "Currency Update Plugin" -msgstr "" +msgstr "Plugin aktualizace měny" -#: common/models.py:1321 +#: common/models.py:1282 msgid "Currency update plugin to use" -msgstr "" +msgstr "Plugin pro aktualizaci měn k použití" -#: common/models.py:1326 +#: common/models.py:1287 msgid "Download from URL" msgstr "Stáhnout z URL" -#: common/models.py:1328 +#: common/models.py:1289 msgid "Allow download of remote images and files from external URL" -msgstr "" +msgstr "Povolit stahování vzdálených obrázků a souborů z externích URL" -#: common/models.py:1334 +#: common/models.py:1295 msgid "Download Size Limit" -msgstr "" +msgstr "Limit velikosti stahování" -#: common/models.py:1335 +#: common/models.py:1296 msgid "Maximum allowable download size for remote image" -msgstr "" +msgstr "Maximální povolená velikost stahování vzdáleného obrázku" -#: common/models.py:1341 +#: common/models.py:1302 msgid "User-agent used to download from URL" -msgstr "" +msgstr "User-agent použitý ke stažení z adresy URL" + +#: common/models.py:1304 +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:1309 +msgid "Strict URL Validation" +msgstr "Přísná validace URL" + +#: common/models.py:1310 +msgid "Require schema specification when validating URLs" +msgstr "Vyžadovat specifikaci schématu při ověřování adres URL" + +#: common/models.py:1315 +msgid "Require confirm" +msgstr "Vyžadovat potvrzení" + +#: common/models.py:1316 +msgid "Require explicit user confirmation for certain action." +msgstr "Vyžadovat výslovné potvrzení uživatele pro určitou akci." + +#: common/models.py:1321 +msgid "Tree Depth" +msgstr "Hloubka stromu" + +#: common/models.py:1323 +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:1329 +msgid "Update Check Interval" +msgstr "Interval kontroly aktualizací" + +#: common/models.py:1330 +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:1336 +msgid "Automatic Backup" +msgstr "Automatické Zálohování" + +#: common/models.py:1337 +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:1342 +msgid "Auto Backup Interval" +msgstr "Interval automatického zálohování" #: common/models.py:1343 -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:1348 -msgid "Strict URL Validation" -msgstr "" +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:1349 -msgid "Require schema specification when validating URLs" -msgstr "" +msgid "Task Deletion Interval" +msgstr "Interval mazání úloh" -#: common/models.py:1354 -msgid "Require confirm" -msgstr "" +#: common/models.py:1351 +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:1355 -msgid "Require explicit user confirmation for certain action." -msgstr "" +#: common/models.py:1358 +msgid "Error Log Deletion Interval" +msgstr "Interval odstranění protokolu chyb" #: common/models.py:1360 -msgid "Tree Depth" -msgstr "" +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:1362 -msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." -msgstr "" - -#: common/models.py:1368 -msgid "Update Check Interval" -msgstr "" +#: common/models.py:1367 +msgid "Notification Deletion Interval" +msgstr "Interval pro odstranění oznámení" #: common/models.py:1369 -msgid "How often to check for updates (set to zero to disable)" -msgstr "" +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:1375 -msgid "Automatic Backup" -msgstr "" +#: common/models.py:1376 templates/InvenTree/settings/sidebar.html:31 +msgid "Barcode Support" +msgstr "Podpora čárových kódů" -#: common/models.py:1376 -msgid "Enable automatic backup of database and media files" -msgstr "" - -#: common/models.py:1381 -msgid "Auto Backup Interval" -msgstr "" +#: common/models.py:1377 +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:1382 -msgid "Specify number of days between automated backup events" -msgstr "" +msgid "Barcode Input Delay" +msgstr "Zpoždění vstupu čárového kódu" -#: common/models.py:1388 -msgid "Task Deletion Interval" -msgstr "" +#: common/models.py:1383 +msgid "Barcode input processing delay time" +msgstr "Doba zpoždění zpracování vstupu čárového kódu" + +#: common/models.py:1389 +msgid "Barcode Webcam Support" +msgstr "Podpora webové kamery pro čárové kódy" #: common/models.py:1390 -msgid "Background task results will be deleted after specified number of days" -msgstr "" +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:1397 -msgid "Error Log Deletion Interval" -msgstr "" +#: common/models.py:1395 +msgid "Part Revisions" +msgstr "Revize dílu" -#: common/models.py:1399 -msgid "Error logs will be deleted after specified number of days" -msgstr "" +#: common/models.py:1396 +msgid "Enable revision field for Part" +msgstr "Povolit pole revize pro díl" -#: common/models.py:1406 -msgid "Notification Deletion Interval" -msgstr "" +#: common/models.py:1401 +msgid "Allow Deletion from Assembly" +msgstr "Povolit odstranění ze sestavy" + +#: common/models.py:1402 +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:1407 +msgid "IPN Regex" +msgstr "IPN Regex" #: common/models.py:1408 -msgid "User notifications will be deleted after specified number of days" -msgstr "" +msgid "Regular expression pattern for matching Part IPN" +msgstr "Regulární vzorec výrazu pro odpovídající IPN dílu" -#: common/models.py:1415 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" +#: common/models.py:1411 +msgid "Allow Duplicate IPN" +msgstr "Povolit duplicitní IPN" -#: common/models.py:1416 -msgid "Enable barcode scanner support in the web interface" -msgstr "" +#: common/models.py:1412 +msgid "Allow multiple parts to share the same IPN" +msgstr "Povolit více dílům sdílet stejný IPN" -#: common/models.py:1421 -msgid "Barcode Input Delay" -msgstr "" +#: common/models.py:1417 +msgid "Allow Editing IPN" +msgstr "Povolit editaci IPN" -#: common/models.py:1422 -msgid "Barcode input processing delay time" -msgstr "" +#: common/models.py:1418 +msgid "Allow changing the IPN value while editing a part" +msgstr "Povolit změnu IPN při úpravách dílu" -#: common/models.py:1428 -msgid "Barcode Webcam Support" -msgstr "" +#: common/models.py:1423 +msgid "Copy Part BOM Data" +msgstr "Kopírovat data BOM dílu" + +#: common/models.py:1424 +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:1429 -msgid "Allow barcode scanning via webcam in browser" -msgstr "" +msgid "Copy Part Parameter Data" +msgstr "Kopírovat data parametrů dílu" -#: common/models.py:1434 -msgid "Part Revisions" -msgstr "" +#: common/models.py:1430 +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:1435 -msgid "Enable revision field for Part" -msgstr "" +msgid "Copy Part Test Data" +msgstr "Kopírovat zkušební data dílu" -#: common/models.py:1440 -msgid "IPN Regex" -msgstr "" +#: common/models.py:1436 +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:1441 -msgid "Regular expression pattern for matching Part IPN" -msgstr "" - -#: common/models.py:1444 -msgid "Allow Duplicate IPN" -msgstr "" - -#: common/models.py:1445 -msgid "Allow multiple parts to share the same IPN" -msgstr "" - -#: common/models.py:1450 -msgid "Allow Editing IPN" -msgstr "" - -#: common/models.py:1451 -msgid "Allow changing the IPN value while editing a part" -msgstr "" - -#: common/models.py:1456 -msgid "Copy Part BOM Data" -msgstr "" - -#: common/models.py:1457 -msgid "Copy BOM data by default when duplicating a part" -msgstr "" - -#: common/models.py:1462 -msgid "Copy Part Parameter Data" -msgstr "" - -#: common/models.py:1463 -msgid "Copy parameter data by default when duplicating a part" -msgstr "" - -#: common/models.py:1468 -msgid "Copy Part Test Data" -msgstr "" - -#: common/models.py:1469 -msgid "Copy test data by default when duplicating a part" -msgstr "" - -#: common/models.py:1474 msgid "Copy Category Parameter Templates" -msgstr "" +msgstr "Kopírovat šablony parametrů kategorie" -#: common/models.py:1475 +#: common/models.py:1442 msgid "Copy category parameter templates when creating a part" -msgstr "" +msgstr "Kopírování šablon parametrů kategorie při vytváření dílu" -#: common/models.py:1480 part/admin.py:108 part/models.py:3772 -#: report/models.py:182 stock/serializers.py:99 +#: common/models.py:1447 part/admin.py:108 part/models.py:3795 +#: report/models.py:294 report/models.py:361 report/serializers.py:90 +#: report/serializers.py:131 stock/serializers.py:227 #: templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:767 msgid "Template" -msgstr "" +msgstr "Šablona" -#: common/models.py:1481 +#: common/models.py:1448 msgid "Parts are templates by default" -msgstr "" +msgstr "Díly jsou ve výchozím nastavení šablony" -#: common/models.py:1486 part/admin.py:91 part/admin.py:431 part/models.py:1016 +#: common/models.py:1453 part/admin.py:91 part/admin.py:425 part/models.py:1052 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:721 msgid "Assembly" -msgstr "" +msgstr "Sestava" -#: common/models.py:1487 +#: common/models.py:1454 msgid "Parts can be assembled from other components by default" -msgstr "" +msgstr "Díly lze ve výchozím nastavení sestavit z jiných komponentů" -#: common/models.py:1492 part/admin.py:95 part/models.py:1022 +#: common/models.py:1459 part/admin.py:95 part/models.py:1058 #: templates/js/translated/table_filters.js:729 msgid "Component" -msgstr "" +msgstr "Komponent" -#: common/models.py:1493 +#: common/models.py:1460 msgid "Parts can be used as sub-components by default" -msgstr "" +msgstr "Díly lze ve výchozím nastavení použít jako dílčí komponenty" -#: common/models.py:1498 part/admin.py:100 part/models.py:1034 +#: common/models.py:1465 part/admin.py:100 part/models.py:1070 msgid "Purchaseable" msgstr "Možné zakoupit" -#: common/models.py:1499 +#: common/models.py:1466 msgid "Parts are purchaseable by default" msgstr "Díly jsou zakoupitelné ve výchozím nastavení" -#: common/models.py:1504 part/admin.py:104 part/models.py:1040 +#: common/models.py:1471 part/admin.py:104 part/models.py:1076 #: templates/js/translated/table_filters.js:755 msgid "Salable" msgstr "Prodejné" -#: common/models.py:1505 +#: common/models.py:1472 msgid "Parts are salable by default" msgstr "Díly jsou prodejné ve výchozím nastavení" -#: common/models.py:1510 part/admin.py:113 part/models.py:1028 +#: common/models.py:1477 part/admin.py:113 part/models.py:1064 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:771 msgid "Trackable" msgstr "Sledovatelné" -#: common/models.py:1511 +#: common/models.py:1478 msgid "Parts are trackable by default" msgstr "Díly jsou sledovatelné ve výchozím nastavení" -#: common/models.py:1516 part/admin.py:117 part/models.py:1050 +#: common/models.py:1483 part/admin.py:117 part/models.py:1086 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:775 msgid "Virtual" msgstr "Nehmotné (virtuální)" -#: common/models.py:1517 +#: common/models.py:1484 msgid "Parts are virtual by default" msgstr "Díly jsou nehmotné (virtuální) ve výchozím nastavení" -#: common/models.py:1522 +#: common/models.py:1489 msgid "Show Import in Views" msgstr "Zobrazit Import v zobrazeních" -#: common/models.py:1523 +#: common/models.py:1490 msgid "Display the import wizard in some part views" -msgstr "" +msgstr "Zobrazit průvodce importem v některých zobrazeních dílu" -#: common/models.py:1528 +#: common/models.py:1495 msgid "Show related parts" msgstr "Zobrazit související díly" -#: common/models.py:1529 +#: common/models.py:1496 msgid "Display related parts for a part" msgstr "Zobrazit související díly pro díl" -#: common/models.py:1534 +#: common/models.py:1501 msgid "Initial Stock Data" msgstr "Počáteční údaje zásob" -#: common/models.py:1535 +#: common/models.py:1502 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:1540 templates/js/translated/part.js:107 +#: common/models.py:1507 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Počáteční údaje dodavatele" -#: common/models.py:1542 +#: common/models.py:1509 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:1548 +#: common/models.py:1515 msgid "Part Name Display Format" msgstr "Formát zobrazení jména dílu" -#: common/models.py:1549 +#: common/models.py:1516 msgid "Format to display the part name" msgstr "Formát pro zobrazení názvu dílu" -#: common/models.py:1555 +#: common/models.py:1522 msgid "Part Category Default Icon" msgstr "Výchozí ikona kategorie dílu" -#: common/models.py:1556 +#: common/models.py:1523 msgid "Part category default icon (empty means no icon)" msgstr "Výchozí ikona kategorie dílu (prázdné znamená bez ikony)" -#: common/models.py:1560 +#: common/models.py:1527 msgid "Enforce Parameter Units" -msgstr "" +msgstr "Vynutit jednotky parametru" -#: common/models.py:1562 +#: common/models.py:1529 msgid "If units are provided, parameter values must match the specified units" -msgstr "" +msgstr "Pokud jsou uvedeny jednotky, musí hodnoty parametrů odpovídat zadaným jednotkám" -#: common/models.py:1568 +#: common/models.py:1535 msgid "Minimum Pricing Decimal Places" msgstr "Minimální počet desetinných míst u cen" -#: common/models.py:1570 +#: common/models.py:1537 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:1576 +#: common/models.py:1548 msgid "Maximum Pricing Decimal Places" msgstr "Maximální počet desetinných míst u cen" -#: common/models.py:1578 +#: common/models.py:1550 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:1584 +#: common/models.py:1561 msgid "Use Supplier Pricing" msgstr "Použít ceny dodavatele" -#: common/models.py:1586 +#: common/models.py:1563 msgid "Include supplier price breaks in overall pricing calculations" -msgstr "" +msgstr "Zahrnout cenová zvýhodnění dodavatelů do celkových cenových kalkulací" -#: common/models.py:1592 +#: common/models.py:1569 msgid "Purchase History Override" msgstr "Přepsání historie nákupu" -#: common/models.py:1594 +#: common/models.py:1571 msgid "Historical purchase order pricing overrides supplier price breaks" -msgstr "" +msgstr "Historické ceny nákupních objednávek mají přednost před cenovými zvýhodněními dodavatele" + +#: common/models.py:1577 +msgid "Use Stock Item Pricing" +msgstr "Použít ceny skladových položek" + +#: common/models.py:1579 +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:1585 +msgid "Stock Item Pricing Age" +msgstr "Stáří cen skladových položek" + +#: common/models.py:1587 +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:1594 +msgid "Use Variant Pricing" +msgstr "Použít cenu varianty" + +#: common/models.py:1595 +msgid "Include variant pricing in overall pricing calculations" +msgstr "Zahrnutí cen variant do celkových cenových kalkulací" #: common/models.py:1600 -msgid "Use Stock Item Pricing" -msgstr "" +msgid "Active Variants Only" +msgstr "Pouze aktivní varianty" #: common/models.py:1602 -msgid "Use pricing from manually entered stock data for pricing calculations" -msgstr "" +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:1608 -msgid "Stock Item Pricing Age" -msgstr "" +msgid "Pricing Rebuild Interval" +msgstr "Interval přestavby cen" #: common/models.py:1610 -msgid "Exclude stock items older than this number of days from pricing calculations" -msgstr "" +msgid "Number of days before part pricing is automatically updated" +msgstr "Počet dní před automatickou aktualizací cen dílů" #: common/models.py:1617 -msgid "Use Variant Pricing" -msgstr "" +msgid "Internal Prices" +msgstr "Interní ceny" #: common/models.py:1618 -msgid "Include variant pricing in overall pricing calculations" -msgstr "" +msgid "Enable internal prices for parts" +msgstr "Povolit interní ceny pro díly" #: common/models.py:1623 -msgid "Active Variants Only" -msgstr "" +msgid "Internal Price Override" +msgstr "Přepis interní ceny" #: common/models.py:1625 -msgid "Only use active variant parts for calculating variant pricing" -msgstr "" +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:1631 -msgid "Pricing Rebuild Interval" -msgstr "" +msgid "Enable label printing" +msgstr "Povolit tisk štítků" -#: common/models.py:1633 -msgid "Number of days before part pricing is automatically updated" -msgstr "" +#: common/models.py:1632 +msgid "Enable label printing from the web interface" +msgstr "Povolit tisk štítků z webového rozhraní" -#: common/models.py:1640 -msgid "Internal Prices" -msgstr "" +#: common/models.py:1637 +msgid "Label Image DPI" +msgstr "DPI rozlišení štítků" -#: common/models.py:1641 -msgid "Enable internal prices for parts" -msgstr "" +#: common/models.py:1639 +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:1645 +msgid "Enable Reports" +msgstr "Povolit reporty" #: common/models.py:1646 -msgid "Internal Price Override" -msgstr "" - -#: common/models.py:1648 -msgid "If available, internal prices override price range calculations" -msgstr "" - -#: common/models.py:1654 -msgid "Enable label printing" -msgstr "" - -#: common/models.py:1655 -msgid "Enable label printing from the web interface" -msgstr "" - -#: common/models.py:1660 -msgid "Label Image DPI" -msgstr "" - -#: common/models.py:1662 -msgid "DPI resolution when generating image files to supply to label printing plugins" -msgstr "" - -#: common/models.py:1668 -msgid "Enable Reports" -msgstr "" - -#: common/models.py:1669 msgid "Enable generation of reports" -msgstr "" +msgstr "Povolit generování reportů" -#: common/models.py:1674 templates/stats.html:25 +#: common/models.py:1651 templates/stats.html:25 msgid "Debug Mode" -msgstr "" +msgstr "Režim ladění chyb" -#: common/models.py:1675 +#: common/models.py:1652 msgid "Generate reports in debug mode (HTML output)" -msgstr "" +msgstr "Generovat reporty v režimu ladění (HTML výstup)" -#: common/models.py:1680 +#: common/models.py:1657 msgid "Log Report Errors" -msgstr "" +msgstr "Zaznamenávat chyby reportů" -#: common/models.py:1681 +#: common/models.py:1658 msgid "Log errors which occur when generating reports" -msgstr "" +msgstr "Zaznamenávat chyby, které se vyskytnou při vytváření reportů" -#: common/models.py:1686 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:203 +#: common/models.py:1663 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:302 msgid "Page Size" msgstr "Velikost stránky" -#: common/models.py:1687 +#: common/models.py:1664 msgid "Default page size for PDF reports" msgstr "Výchozí velikost stránky pro PDF reporty" -#: common/models.py:1692 +#: common/models.py:1669 msgid "Enable Test Reports" msgstr "Povolit testovací reporty" -#: common/models.py:1693 +#: common/models.py:1670 msgid "Enable generation of test reports" msgstr "Povolit generování zkušebních reportů" -#: common/models.py:1698 +#: common/models.py:1675 msgid "Attach Test Reports" msgstr "Připojit testovací reporty" -#: common/models.py:1700 +#: common/models.py:1677 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:1706 +#: common/models.py:1683 msgid "Globally Unique Serials" -msgstr "" +msgstr "Globálně unikátní sériová čísla" -#: common/models.py:1707 +#: common/models.py:1684 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:1712 +#: common/models.py:1689 msgid "Autofill Serial Numbers" msgstr "Automaticky vyplnit sériová čísla" -#: common/models.py:1713 +#: common/models.py:1690 msgid "Autofill serial numbers in forms" msgstr "Automaticky vyplnit sériová čísla ve formulářích" -#: common/models.py:1718 +#: common/models.py:1695 msgid "Delete Depleted Stock" msgstr "Odstranit vyčerpané zásoby" -#: common/models.py:1720 +#: common/models.py:1697 msgid "Determines default behavior when a stock item is depleted" -msgstr "" +msgstr "Určuje výchozí chování při vyčerpání zásoby položky" -#: common/models.py:1726 +#: common/models.py:1703 msgid "Batch Code Template" -msgstr "" +msgstr "Šablona kódu dávky" -#: common/models.py:1728 +#: common/models.py:1705 msgid "Template for generating default batch codes for stock items" -msgstr "" +msgstr "Šablona pro generování výchozích kódů dávky pro skladové položky" -#: common/models.py:1733 +#: common/models.py:1710 msgid "Stock Expiry" -msgstr "" +msgstr "Expirace zásob" -#: common/models.py:1734 +#: common/models.py:1711 msgid "Enable stock expiry functionality" -msgstr "" +msgstr "Povolit funkci expirace zásob" -#: common/models.py:1739 +#: common/models.py:1716 msgid "Sell Expired Stock" -msgstr "" +msgstr "Prodat prošlé zásoby" -#: common/models.py:1740 +#: common/models.py:1717 msgid "Allow sale of expired stock" -msgstr "" +msgstr "Povolit prodej prošlých zásob" -#: common/models.py:1745 +#: common/models.py:1722 msgid "Stock Stale Time" -msgstr "" +msgstr "Čas stáří zásob" -#: common/models.py:1747 +#: common/models.py:1724 msgid "Number of days stock items are considered stale before expiring" -msgstr "" +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:1731 +msgid "Build Expired Stock" +msgstr "Sestavit prošlé zásoby" + +#: common/models.py:1732 +msgid "Allow building with expired stock" +msgstr "Povolit sestavování s prošlými zásobami" + +#: common/models.py:1737 +msgid "Stock Ownership Control" +msgstr "Kontrola vlastnictví zásob" + +#: common/models.py:1738 +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:1743 +msgid "Stock Location Default Icon" +msgstr "Výchozí ikona umístění zásob" + +#: common/models.py:1744 +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:1748 +msgid "Show Installed Stock Items" +msgstr "Zobrazit nainstalované skladové položky" + +#: common/models.py:1749 +msgid "Display installed stock items in stock tables" +msgstr "Zobrazit nainstalované skladové položky ve skladových tabulkách" #: common/models.py:1754 -msgid "Build Expired Stock" -msgstr "" +msgid "Check BOM when installing items" +msgstr "Zkontrolovat BOM při instalaci položek" -#: common/models.py:1755 -msgid "Allow building with expired stock" -msgstr "" +#: common/models.py:1756 +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:1760 -msgid "Stock Ownership Control" -msgstr "" +#: common/models.py:1762 +msgid "Allow Out of Stock Transfer" +msgstr "Povolit převod mimo sklad" -#: common/models.py:1761 -msgid "Enable ownership control over stock locations and items" -msgstr "" +#: common/models.py:1764 +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:1766 -msgid "Stock Location Default Icon" -msgstr "" - -#: common/models.py:1767 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1771 -msgid "Show Installed Stock Items" -msgstr "" +#: common/models.py:1770 +msgid "Build Order Reference Pattern" +msgstr "Referenční vzor objednávky sestavy" #: common/models.py:1772 -msgid "Display installed stock items in stock tables" -msgstr "" - -#: common/models.py:1777 -msgid "Check BOM when installing items" -msgstr "" - -#: common/models.py:1779 -msgid "Installed stock items must exist in the BOM for the parent part" -msgstr "" - -#: common/models.py:1785 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1787 msgid "Required pattern for generating Build Order reference field" -msgstr "" +msgstr "Požadovaný vzor pro generování referenčního pole Objednávka sestavy" -#: common/models.py:1793 common/models.py:1821 common/models.py:1843 -#: common/models.py:1871 +#: common/models.py:1778 common/models.py:1806 common/models.py:1828 +#: common/models.py:1864 msgid "Require Responsible Owner" -msgstr "" +msgstr "Vyžadovat odpovědného vlastníka" -#: common/models.py:1794 common/models.py:1822 common/models.py:1844 -#: common/models.py:1872 +#: common/models.py:1779 common/models.py:1807 common/models.py:1829 +#: common/models.py:1865 msgid "A responsible owner must be assigned to each order" -msgstr "" +msgstr "Ke každé objednávce musí být přiřazen odpovědný vlastník" -#: common/models.py:1799 +#: common/models.py:1784 msgid "Block Until Tests Pass" -msgstr "" +msgstr "Blokovat, dokud testy neprojdou" -#: common/models.py:1801 +#: common/models.py:1786 msgid "Prevent build outputs from being completed until all required tests pass" -msgstr "" +msgstr "Zabránit dokončení výstupů sestavy, dokud neprojdou všechny požadované testy" -#: common/models.py:1807 +#: common/models.py:1792 msgid "Enable Return Orders" -msgstr "" +msgstr "Povolit vracení objednávek" -#: common/models.py:1808 +#: common/models.py:1793 msgid "Enable return order functionality in the user interface" -msgstr "" +msgstr "Povolit funkci vrácení objednávky v uživatelském rozhraní" -#: common/models.py:1813 +#: common/models.py:1798 msgid "Return Order Reference Pattern" -msgstr "" +msgstr "Referenční vzor návratové objednávky" -#: common/models.py:1815 +#: common/models.py:1800 msgid "Required pattern for generating Return Order reference field" -msgstr "" +msgstr "Požadovaný vzor pro vygenerování referenčního pole Návratová objednávka" -#: common/models.py:1827 +#: common/models.py:1812 msgid "Edit Completed Return Orders" -msgstr "" +msgstr "Úprava dokončených návratových objednávek" -#: common/models.py:1829 +#: common/models.py:1814 msgid "Allow editing of return orders after they have been completed" -msgstr "" +msgstr "Umožnit úpravu návratových objednávek po jejich dokončení" + +#: common/models.py:1820 +msgid "Sales Order Reference Pattern" +msgstr "Referenční vzor prodejní objednávky" + +#: common/models.py:1822 +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:1834 +msgid "Sales Order Default Shipment" +msgstr "Výchozí přeprava prodejní objednávky" #: common/models.py:1835 -msgid "Sales Order Reference Pattern" -msgstr "" +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:1837 -msgid "Required pattern for generating Sales Order reference field" -msgstr "" +#: common/models.py:1840 +msgid "Edit Completed Sales Orders" +msgstr "Úprava dokončených prodejních objednávek" -#: common/models.py:1849 -msgid "Sales Order Default Shipment" -msgstr "" +#: common/models.py:1842 +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:1848 +msgid "Mark Shipped Orders as Complete" +msgstr "Označit odeslané objednávky jako dokončené" #: common/models.py:1850 -msgid "Enable creation of default shipment with sales orders" -msgstr "" +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:1855 -msgid "Edit Completed Sales Orders" -msgstr "" - -#: common/models.py:1857 -msgid "Allow editing of sales orders after they have been shipped or completed" -msgstr "" - -#: common/models.py:1863 +#: common/models.py:1856 msgid "Purchase Order Reference Pattern" -msgstr "" +msgstr "Referenční vzor nákupní objednávky" -#: common/models.py:1865 +#: common/models.py:1858 msgid "Required pattern for generating Purchase Order reference field" -msgstr "" +msgstr "Požadovaný vzor pro generování referenčního pole nákupní objednávky" -#: common/models.py:1877 +#: common/models.py:1870 msgid "Edit Completed Purchase Orders" -msgstr "" +msgstr "Úprava dokončených nákupních objednávek" -#: common/models.py:1879 +#: common/models.py:1872 msgid "Allow editing of purchase orders after they have been shipped or completed" -msgstr "" +msgstr "Umožnit úpravy nákupních objednávek po jejich odeslání nebo dokončení" -#: common/models.py:1885 +#: common/models.py:1878 msgid "Auto Complete Purchase Orders" -msgstr "" +msgstr "Automatické dokončování nákupních objednávek" + +#: common/models.py:1880 +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:1887 -msgid "Automatically mark purchase orders as complete when all line items are received" -msgstr "" +msgid "Enable password forgot" +msgstr "Povolit pole zapomenutého hesla" + +#: common/models.py:1888 +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:1893 +msgid "Enable registration" +msgstr "Povolit registrace" #: common/models.py:1894 -msgid "Enable password forgot" -msgstr "" +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:1895 -msgid "Enable password forgot function on the login pages" -msgstr "" +#: common/models.py:1899 +msgid "Enable SSO" +msgstr "Povolit SSO" #: common/models.py:1900 -msgid "Enable registration" -msgstr "" +msgid "Enable SSO on the login pages" +msgstr "Povolit SSO na přihlašovacích stránkách" -#: common/models.py:1901 -msgid "Enable self-registration for users on the login pages" -msgstr "" - -#: common/models.py:1906 -msgid "Enable SSO" -msgstr "" +#: common/models.py:1905 +msgid "Enable SSO registration" +msgstr "Povolit SSO registraci" #: common/models.py:1907 -msgid "Enable SSO on the login pages" -msgstr "" +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:1912 -msgid "Enable SSO registration" -msgstr "" +#: common/models.py:1913 +msgid "Email required" +msgstr "Vyžadován e-mail" #: common/models.py:1914 -msgid "Enable self-registration via SSO for users on the login pages" -msgstr "" +msgid "Require user to supply mail on signup" +msgstr "Požadovat, aby uživatel při registraci zadal e-mail" -#: common/models.py:1920 -msgid "Email required" -msgstr "" +#: common/models.py:1919 +msgid "Auto-fill SSO users" +msgstr "Automaticky vyplnit SSO uživatele" #: common/models.py:1921 -msgid "Require user to supply mail on signup" -msgstr "" +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:1926 -msgid "Auto-fill SSO users" -msgstr "" +#: common/models.py:1927 +msgid "Mail twice" +msgstr "Mail dvakrát" #: common/models.py:1928 -msgid "Automatically fill out user-details from SSO account-data" -msgstr "" +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:1933 +msgid "Password twice" +msgstr "Heslo dvakrát" #: common/models.py:1934 -msgid "Mail twice" -msgstr "" +msgid "On signup ask users twice for their password" +msgstr "Při registraci dvakrát požádat uživatele o heslo" -#: common/models.py:1935 -msgid "On signup ask users twice for their mail" -msgstr "" - -#: common/models.py:1940 -msgid "Password twice" -msgstr "" +#: common/models.py:1939 +msgid "Allowed domains" +msgstr "Povolené domény" #: common/models.py:1941 -msgid "On signup ask users twice for their password" -msgstr "" +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:1946 -msgid "Allowed domains" -msgstr "" +#: common/models.py:1947 +msgid "Group on signup" +msgstr "Skupina při registraci" #: common/models.py:1948 -msgid "Restrict signup to certain domains (comma-separated, starting with @)" -msgstr "" +msgid "Group to which new users are assigned on registration" +msgstr "Skupina, ke které jsou přiděleni noví uživatelé při registraci" + +#: common/models.py:1953 +msgid "Enforce MFA" +msgstr "Vynutit MFA" #: common/models.py:1954 -msgid "Group on signup" -msgstr "" +msgid "Users must use multifactor security." +msgstr "Uživatelé musí používat vícefaktorové zabezpečení." -#: common/models.py:1955 -msgid "Group to which new users are assigned on registration" -msgstr "" - -#: common/models.py:1960 -msgid "Enforce MFA" -msgstr "" +#: common/models.py:1959 +msgid "Check plugins on startup" +msgstr "Zkontrolovat pluginy při spuštění" #: common/models.py:1961 -msgid "Users must use multifactor security." -msgstr "" - -#: common/models.py:1966 -msgid "Check plugins on startup" -msgstr "" - -#: common/models.py:1968 msgid "Check that all plugins are installed on startup - enable in container environments" -msgstr "" +msgstr "Zkontrolujte, zda jsou při spuštění nainstalovány všechny pluginy - povolit v kontejnerových prostředích" + +#: common/models.py:1969 +msgid "Check for plugin updates" +msgstr "Zkontrolovat aktualizace pluginů" + +#: common/models.py:1970 +msgid "Enable periodic checks for updates to installed plugins" +msgstr "Povolit pravidelné kontroly aktualizací nainstalovaných pluginů" #: common/models.py:1976 -msgid "Check for plugin updates" -msgstr "" +msgid "Enable URL integration" +msgstr "Povolit integraci URL" #: common/models.py:1977 -msgid "Enable periodic checks for updates to installed plugins" -msgstr "" +msgid "Enable plugins to add URL routes" +msgstr "Povolit plug-inům přidávat trasy URL" #: common/models.py:1983 -msgid "Enable URL integration" -msgstr "" +msgid "Enable navigation integration" +msgstr "Povolit integraci navigace" #: common/models.py:1984 -msgid "Enable plugins to add URL routes" -msgstr "" +msgid "Enable plugins to integrate into navigation" +msgstr "Povolit integrování pluginů do navigace" #: common/models.py:1990 -msgid "Enable navigation integration" -msgstr "" +msgid "Enable app integration" +msgstr "Povolit integraci aplikací" #: common/models.py:1991 -msgid "Enable plugins to integrate into navigation" -msgstr "" +msgid "Enable plugins to add apps" +msgstr "Povolit pluginům přidávát aplikace" #: common/models.py:1997 -msgid "Enable app integration" -msgstr "" +msgid "Enable schedule integration" +msgstr "Povolit integraci plánu" #: common/models.py:1998 -msgid "Enable plugins to add apps" -msgstr "" +msgid "Enable plugins to run scheduled tasks" +msgstr "Povolit pluginům spouštění naplánovaných úloh" #: common/models.py:2004 -msgid "Enable schedule integration" -msgstr "" +msgid "Enable event integration" +msgstr "Povolit integraci událostí" #: common/models.py:2005 -msgid "Enable plugins to run scheduled tasks" -msgstr "" +msgid "Enable plugins to respond to internal events" +msgstr "Povolit pluginům reagovat na interní události" #: common/models.py:2011 -msgid "Enable event integration" -msgstr "" +msgid "Enable project codes" +msgstr "Povolit kódy projektů" #: common/models.py:2012 -msgid "Enable plugins to respond to internal events" -msgstr "" +msgid "Enable project codes for tracking projects" +msgstr "Povolit kódy projektů pro sledování projektů" -#: common/models.py:2018 -msgid "Enable project codes" -msgstr "" +#: common/models.py:2017 +msgid "Stocktake Functionality" +msgstr "Funkce inventury" #: common/models.py:2019 -msgid "Enable project codes for tracking projects" -msgstr "" - -#: common/models.py:2024 -msgid "Stocktake Functionality" -msgstr "" - -#: common/models.py:2026 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" -msgstr "" +msgstr "Povolit funkci inventury pro evidenci stavu zásob a výpočet hodnoty zásob" -#: common/models.py:2032 +#: common/models.py:2025 msgid "Exclude External Locations" -msgstr "" +msgstr "Vyloučit externí umístění" -#: common/models.py:2034 +#: common/models.py:2027 msgid "Exclude stock items in external locations from stocktake calculations" -msgstr "" +msgstr "Vyloučit skladové položky na externích místech z výpočtů inventury" -#: common/models.py:2040 +#: common/models.py:2033 msgid "Automatic Stocktake Period" -msgstr "" +msgstr "Perioda automatické inventury" -#: common/models.py:2042 +#: common/models.py:2035 msgid "Number of days between automatic stocktake recording (set to zero to disable)" -msgstr "" +msgstr "Počet dní mezi automatickým záznamem inventury (pro vypnutí nastavte nulu)" -#: common/models.py:2048 +#: common/models.py:2041 msgid "Report Deletion Interval" -msgstr "" +msgstr "Interval mazání reportů" + +#: common/models.py:2043 +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:2050 -msgid "Stocktake reports will be deleted after specified number of days" -msgstr "" +msgid "Display Users full names" +msgstr "Zobrazit celá jména uživatelů" + +#: common/models.py:2051 +msgid "Display Users full names instead of usernames" +msgstr "Zobrazit plná jména uživatelů namísto uživatelských jmen" + +#: common/models.py:2056 +msgid "Enable Test Station Data" +msgstr "Povolit data zkušební stanice" #: common/models.py:2057 -msgid "Display Users full names" -msgstr "" - -#: common/models.py:2058 -msgid "Display Users full names instead of usernames" -msgstr "" - -#: common/models.py:2063 -msgid "Enable Test Station Data" -msgstr "" - -#: common/models.py:2064 msgid "Enable test station data collection for test results" -msgstr "" +msgstr "Povolit sběr dat ze zkušební stanice pro výsledky testů" -#: common/models.py:2076 common/models.py:2486 +#: common/models.py:2069 common/models.py:2479 msgid "Settings key (must be unique - case insensitive" -msgstr "" +msgstr "Klíč nastavení (musí být unikátní - rozlišuje malá a velká písmena" -#: common/models.py:2119 +#: common/models.py:2112 msgid "Hide inactive parts" -msgstr "" +msgstr "Skrýt neaktivní díly" + +#: common/models.py:2114 +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:2120 +msgid "Show subscribed parts" +msgstr "Zobrazit odebírané díly" #: common/models.py:2121 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" +msgid "Show subscribed parts on the homepage" +msgstr "Zobrazit odebírané díly na domovské stránce" + +#: common/models.py:2126 +msgid "Show subscribed categories" +msgstr "Zobrazit odebírané kategorie" #: common/models.py:2127 -msgid "Show subscribed parts" -msgstr "" +msgid "Show subscribed part categories on the homepage" +msgstr "Zobrazit kategorie odebíraných dílů na hlavní stránce" -#: common/models.py:2128 -msgid "Show subscribed parts on the homepage" -msgstr "" +#: common/models.py:2132 +msgid "Show latest parts" +msgstr "Zobrazit nejnovější díly" #: common/models.py:2133 -msgid "Show subscribed categories" -msgstr "" +msgid "Show latest parts on the homepage" +msgstr "Zobrazit nejnovější díly na domovské stránce" -#: common/models.py:2134 -msgid "Show subscribed part categories on the homepage" -msgstr "" +#: common/models.py:2138 +msgid "Show invalid BOMs" +msgstr "Zobrazit neplatné kusovníky (BOMy)" #: common/models.py:2139 -msgid "Show latest parts" -msgstr "" +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:2140 -msgid "Show latest parts on the homepage" -msgstr "" +#: common/models.py:2144 +msgid "Show recent stock changes" +msgstr "Zobrazit nedávné změny zásob" #: common/models.py:2145 -msgid "Show invalid BOMs" -msgstr "" +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:2146 -msgid "Show BOMs that await validation on the homepage" -msgstr "" +#: common/models.py:2150 +msgid "Show low stock" +msgstr "Zobrazit nízký stav zásob" #: common/models.py:2151 -msgid "Show recent stock changes" -msgstr "" +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:2152 -msgid "Show recently changed stock items on the homepage" -msgstr "" +#: common/models.py:2156 +msgid "Show depleted stock" +msgstr "Zobrazit vyčerpané zásoby" #: common/models.py:2157 -msgid "Show low stock" -msgstr "" +msgid "Show depleted stock items on the homepage" +msgstr "Zobrazit vyčerpané položky na domovské stránce" -#: common/models.py:2158 -msgid "Show low stock items on the homepage" -msgstr "" +#: common/models.py:2162 +msgid "Show needed stock" +msgstr "Zobrazit potřebné zásoby" #: common/models.py:2163 -msgid "Show depleted stock" -msgstr "" +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:2164 -msgid "Show depleted stock items on the homepage" -msgstr "" +#: common/models.py:2168 +msgid "Show expired stock" +msgstr "Zobrazit expirované zásoby" #: common/models.py:2169 -msgid "Show needed stock" -msgstr "" +msgid "Show expired stock items on the homepage" +msgstr "Zobrazit expirované skladové položky na domovské stránce" -#: common/models.py:2170 -msgid "Show stock items needed for builds on the homepage" -msgstr "" +#: common/models.py:2174 +msgid "Show stale stock" +msgstr "Zobrazit neaktuální zásoby" #: common/models.py:2175 -msgid "Show expired stock" -msgstr "" +msgid "Show stale stock items on the homepage" +msgstr "Zobrazit neaktuální skladové položky na domovské stránce" -#: common/models.py:2176 -msgid "Show expired stock items on the homepage" -msgstr "" +#: common/models.py:2180 +msgid "Show pending builds" +msgstr "Zobrazit nevyřízené sestavy" #: common/models.py:2181 -msgid "Show stale stock" -msgstr "" +msgid "Show pending builds on the homepage" +msgstr "Zobrazit nevyřízené sestavy na domovské stránce" -#: common/models.py:2182 -msgid "Show stale stock items on the homepage" -msgstr "" +#: common/models.py:2186 +msgid "Show overdue builds" +msgstr "Zobrazit sestavy po splatnosti" #: common/models.py:2187 -msgid "Show pending builds" -msgstr "" +msgid "Show overdue builds on the homepage" +msgstr "Zobrazit sestavy po splatnosti na domovské stránce" -#: common/models.py:2188 -msgid "Show pending builds on the homepage" -msgstr "" +#: common/models.py:2192 +msgid "Show outstanding POs" +msgstr "Zobrazit nevyřízené PO" #: common/models.py:2193 -msgid "Show overdue builds" -msgstr "" +msgid "Show outstanding POs on the homepage" +msgstr "Zobrazit nevyřízené PO na domovské stránce" -#: common/models.py:2194 -msgid "Show overdue builds on the homepage" -msgstr "" +#: common/models.py:2198 +msgid "Show overdue POs" +msgstr "Zobrazit PO po splatnosti" #: common/models.py:2199 -msgid "Show outstanding POs" -msgstr "" +msgid "Show overdue POs on the homepage" +msgstr "Zobrazit PO po splatnosti na domovské stránce" -#: common/models.py:2200 -msgid "Show outstanding POs on the homepage" -msgstr "" +#: common/models.py:2204 +msgid "Show outstanding SOs" +msgstr "Zobrazit nevyřízené SO" #: common/models.py:2205 -msgid "Show overdue POs" -msgstr "" +msgid "Show outstanding SOs on the homepage" +msgstr "Zobrazit nevyřízené SO na domovské stránce" -#: common/models.py:2206 -msgid "Show overdue POs on the homepage" -msgstr "" +#: common/models.py:2210 +msgid "Show overdue SOs" +msgstr "Zobrazit SO po splatnosti" #: common/models.py:2211 -msgid "Show outstanding SOs" -msgstr "" +msgid "Show overdue SOs on the homepage" +msgstr "Zobrazit SO po splatnosti na domovské stránce" -#: common/models.py:2212 -msgid "Show outstanding SOs on the homepage" -msgstr "" +#: common/models.py:2216 +msgid "Show pending SO shipments" +msgstr "Zobrazit čekající zásilky SO" #: common/models.py:2217 -msgid "Show overdue SOs" -msgstr "" +msgid "Show pending SO shipments on the homepage" +msgstr "Zobrazit čekající zásilky SO na domovské stránce" -#: common/models.py:2218 -msgid "Show overdue SOs on the homepage" -msgstr "" +#: common/models.py:2222 +msgid "Show News" +msgstr "Zobrazit novinky" #: common/models.py:2223 -msgid "Show pending SO shipments" -msgstr "" +msgid "Show news on the homepage" +msgstr "Zobrazit novinky na domovské stránce" -#: common/models.py:2224 -msgid "Show pending SO shipments on the homepage" -msgstr "" - -#: common/models.py:2229 -msgid "Show News" -msgstr "" +#: common/models.py:2228 +msgid "Inline label display" +msgstr "Zobrazení štítků na řádku" #: common/models.py:2230 -msgid "Show news on the homepage" -msgstr "" - -#: common/models.py:2235 -msgid "Inline label display" -msgstr "" - -#: common/models.py:2237 msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" +msgstr "Zobrazit štítky PDF v prohlížeči namísto stahování jako soubor" -#: common/models.py:2243 +#: common/models.py:2236 msgid "Default label printer" -msgstr "" +msgstr "Výchozí tiskárna štítků" -#: common/models.py:2245 +#: common/models.py:2238 msgid "Configure which label printer should be selected by default" -msgstr "" +msgstr "Konfigurovat tiskárnu štítků, která má být vybrána jako výchozí" -#: common/models.py:2251 +#: common/models.py:2244 msgid "Inline report display" -msgstr "" +msgstr "Zobrazení reportů na řádku" + +#: common/models.py:2246 +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:2252 +msgid "Search Parts" +msgstr "Hledat díly" #: common/models.py:2253 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" +msgid "Display parts in search preview window" +msgstr "Zobrazit díly v náhledu hledání" + +#: common/models.py:2258 +msgid "Search Supplier Parts" +msgstr "Hledat díly dodavatele" #: common/models.py:2259 -msgid "Search Parts" -msgstr "" +msgid "Display supplier parts in search preview window" +msgstr "Zobrazit díly dodavatele v náhledu hledání" -#: common/models.py:2260 -msgid "Display parts in search preview window" -msgstr "" +#: common/models.py:2264 +msgid "Search Manufacturer Parts" +msgstr "Vyhledávání dílů výrobce" #: common/models.py:2265 -msgid "Search Supplier Parts" -msgstr "" +msgid "Display manufacturer parts in search preview window" +msgstr "Zobrazit díly výrobce v náhledu hledání" -#: common/models.py:2266 -msgid "Display supplier parts in search preview window" -msgstr "" +#: common/models.py:2270 +msgid "Hide Inactive Parts" +msgstr "Skrýt neaktivní díly" #: common/models.py:2271 -msgid "Search Manufacturer Parts" -msgstr "" +msgid "Excluded inactive parts from search preview window" +msgstr "Vyloučené neaktivní části z okna náhledu vyhledávání" -#: common/models.py:2272 -msgid "Display manufacturer parts in search preview window" -msgstr "" +#: common/models.py:2276 +msgid "Search Categories" +msgstr "Hledat kategorie" #: common/models.py:2277 -msgid "Hide Inactive Parts" -msgstr "" +msgid "Display part categories in search preview window" +msgstr "Zobrazit kategorie dílů v náhledu hledání" -#: common/models.py:2278 -msgid "Excluded inactive parts from search preview window" -msgstr "" +#: common/models.py:2282 +msgid "Search Stock" +msgstr "Hledat zásoby" #: common/models.py:2283 -msgid "Search Categories" -msgstr "" +msgid "Display stock items in search preview window" +msgstr "Zobrazit skladové položky v náhledu hledání" -#: common/models.py:2284 -msgid "Display part categories in search preview window" -msgstr "" - -#: common/models.py:2289 -msgid "Search Stock" -msgstr "" +#: common/models.py:2288 +msgid "Hide Unavailable Stock Items" +msgstr "Skrýt nedostupné skladové položky" #: common/models.py:2290 -msgid "Display stock items in search preview window" -msgstr "" +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:2295 -msgid "Hide Unavailable Stock Items" -msgstr "" +#: common/models.py:2296 +msgid "Search Locations" +msgstr "Hledat umístění" #: common/models.py:2297 -msgid "Exclude stock items which are not available from the search preview window" -msgstr "" +msgid "Display stock locations in search preview window" +msgstr "Zobrazit skladová umístění v náhledu hledání" + +#: common/models.py:2302 +msgid "Search Companies" +msgstr "Hledat společnosti" #: common/models.py:2303 -msgid "Search Locations" -msgstr "" +msgid "Display companies in search preview window" +msgstr "Zobrazit společnosti v náhledu hledání" -#: common/models.py:2304 -msgid "Display stock locations in search preview window" -msgstr "" +#: common/models.py:2308 +msgid "Search Build Orders" +msgstr "Hledat objednávky sestav" #: common/models.py:2309 -msgid "Search Companies" -msgstr "" +msgid "Display build orders in search preview window" +msgstr "Zobrazit objednávky sestav v náhledu hledání" -#: common/models.py:2310 -msgid "Display companies in search preview window" -msgstr "" +#: common/models.py:2314 +msgid "Search Purchase Orders" +msgstr "Hledat nákupní objednávky" #: common/models.py:2315 -msgid "Search Build Orders" -msgstr "" +msgid "Display purchase orders in search preview window" +msgstr "Zobrazit nákupní objednávky v náhledu hledání" -#: common/models.py:2316 -msgid "Display build orders in search preview window" -msgstr "" - -#: common/models.py:2321 -msgid "Search Purchase Orders" -msgstr "" +#: common/models.py:2320 +msgid "Exclude Inactive Purchase Orders" +msgstr "Vyloučit neaktivní nákupní objednávky" #: common/models.py:2322 -msgid "Display purchase orders in search preview window" -msgstr "" +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:2327 -msgid "Exclude Inactive Purchase Orders" -msgstr "" +#: common/models.py:2328 +msgid "Search Sales Orders" +msgstr "Hledat prodejní objednávky" #: common/models.py:2329 -msgid "Exclude inactive purchase orders from search preview window" -msgstr "" +msgid "Display sales orders in search preview window" +msgstr "Zobrazit prodejní objednávky v náhledu hledání" -#: common/models.py:2335 -msgid "Search Sales Orders" -msgstr "" +#: common/models.py:2334 +msgid "Exclude Inactive Sales Orders" +msgstr "Vyloučit neaktivní prodejní objednávky" #: common/models.py:2336 -msgid "Display sales orders in search preview window" -msgstr "" +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:2341 -msgid "Exclude Inactive Sales Orders" -msgstr "" +#: common/models.py:2342 +msgid "Search Return Orders" +msgstr "Vyhledávání vrácených objednávek" #: common/models.py:2343 -msgid "Exclude inactive sales orders from search preview window" -msgstr "" +msgid "Display return orders in search preview window" +msgstr "Zobrazit vrácené objednávky v okně náhledu vyhledávání" -#: common/models.py:2349 -msgid "Search Return Orders" -msgstr "" +#: common/models.py:2348 +msgid "Exclude Inactive Return Orders" +msgstr "Vyloučit neaktivní vrácené objednávky" #: common/models.py:2350 -msgid "Display return orders in search preview window" -msgstr "" - -#: common/models.py:2355 -msgid "Exclude Inactive Return Orders" -msgstr "" - -#: common/models.py:2357 msgid "Exclude inactive return orders from search preview window" -msgstr "" +msgstr "Vyloučit neaktivní vrácené objednávky z okna náhledu vyhledávání" -#: common/models.py:2363 +#: common/models.py:2356 msgid "Search Preview Results" -msgstr "" +msgstr "Náhled výsledků vyhledávání" + +#: common/models.py:2358 +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:2364 +msgid "Regex Search" +msgstr "Regex hledání" #: common/models.py:2365 -msgid "Number of results to show in each section of the search preview window" -msgstr "" +msgid "Enable regular expressions in search queries" +msgstr "Povolit regulární výrazy ve vyhledávacích dotazech" + +#: common/models.py:2370 +msgid "Whole Word Search" +msgstr "Vyhledávání celého slova" #: common/models.py:2371 -msgid "Regex Search" -msgstr "" +msgid "Search queries return results for whole word matches" +msgstr "Vyhledávací dotazy vracejí výsledky pro shody celých slov" -#: common/models.py:2372 -msgid "Enable regular expressions in search queries" -msgstr "" +#: common/models.py:2376 +msgid "Show Quantity in Forms" +msgstr "Zobrazit množství ve formulářích" #: common/models.py:2377 -msgid "Whole Word Search" -msgstr "" +msgid "Display available part quantity in some forms" +msgstr "Zobrazit dostupné množství dílů v některých formulářích" -#: common/models.py:2378 -msgid "Search queries return results for whole word matches" -msgstr "" +#: common/models.py:2382 +msgid "Escape Key Closes Forms" +msgstr "Klávesa Escape zavře formuláře" #: common/models.py:2383 -msgid "Show Quantity in Forms" -msgstr "" +msgid "Use the escape key to close modal forms" +msgstr "Zavřít modální formuláře pomocí klávesy escape" -#: common/models.py:2384 -msgid "Display available part quantity in some forms" -msgstr "" +#: common/models.py:2388 +msgid "Fixed Navbar" +msgstr "Pevná navigační lišta" #: common/models.py:2389 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:2390 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2395 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:2396 msgid "The navbar position is fixed to the top of the screen" -msgstr "" +msgstr "Pozice navigační lišty je pevně nastavena na horní okraj obrazovky" -#: common/models.py:2401 +#: common/models.py:2394 msgid "Date Format" msgstr "Formát data" -#: common/models.py:2402 +#: common/models.py:2395 msgid "Preferred format for displaying dates" -msgstr "" +msgstr "Preferovaný formát pro zobrazení datumů" -#: common/models.py:2415 part/templates/part/detail.html:41 +#: common/models.py:2408 part/templates/part/detail.html:41 msgid "Part Scheduling" -msgstr "" +msgstr "Plánování dílů" + +#: common/models.py:2409 +msgid "Display part scheduling information" +msgstr "Zobrazit informace o plánování dílů" + +#: common/models.py:2414 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "Inventura dílu" #: common/models.py:2416 -msgid "Display part scheduling information" -msgstr "" - -#: common/models.py:2421 part/templates/part/detail.html:62 -msgid "Part Stocktake" -msgstr "" - -#: common/models.py:2423 msgid "Display part stocktake information (if stocktake functionality is enabled)" -msgstr "" +msgstr "Zobrazit informace o skladových zásobách dílů (pokud je povolena funkce inventury)" -#: common/models.py:2429 +#: common/models.py:2422 msgid "Table String Length" -msgstr "" +msgstr "Délka textu v tabulce" + +#: common/models.py:2424 +msgid "Maximum length limit for strings displayed in table views" +msgstr "Maximální délka textu v zobrazeních tabulek" + +#: common/models.py:2430 +msgid "Default part label template" +msgstr "Výchozí šablona štítku dílu" #: common/models.py:2431 -msgid "Maximum length limit for strings displayed in table views" -msgstr "" +msgid "The part label template to be automatically selected" +msgstr "Automaticky vybraná šablona štítku dílu" -#: common/models.py:2437 -msgid "Default part label template" -msgstr "" +#: common/models.py:2436 +msgid "Default stock item template" +msgstr "Výchozí šablona skladové položky" #: common/models.py:2438 -msgid "The part label template to be automatically selected" -msgstr "" - -#: common/models.py:2443 -msgid "Default stock item template" -msgstr "" - -#: common/models.py:2445 msgid "The stock item label template to be automatically selected" -msgstr "" +msgstr "Automaticky vybraná šablona štítku skladové položky" -#: common/models.py:2451 +#: common/models.py:2444 msgid "Default stock location label template" -msgstr "" +msgstr "Výchozí šablona štítku umístění zásob" -#: common/models.py:2453 +#: common/models.py:2446 msgid "The stock location label template to be automatically selected" -msgstr "" +msgstr "Automaticky vybraná šablona štítku skladového umístění" -#: common/models.py:2459 +#: common/models.py:2452 msgid "Default build line label template" -msgstr "" +msgstr "Výchozí šablona štítku řádku sestavy" + +#: common/models.py:2454 +msgid "The build line label template to be automatically selected" +msgstr "Automaticky vybraná šablona štítku řádku sestavy" + +#: common/models.py:2460 +msgid "Receive error reports" +msgstr "Přijímat zprávy o chybách" #: common/models.py:2461 -msgid "The build line label template to be automatically selected" -msgstr "" +msgid "Receive notifications for system errors" +msgstr "Dostávat oznámení o systémových chybách" + +#: common/models.py:2466 +msgid "Last used printing machines" +msgstr "Poslední použité tiskárny" #: common/models.py:2467 -msgid "Receive error reports" -msgstr "" - -#: common/models.py:2468 -msgid "Receive notifications for system errors" -msgstr "" - -#: common/models.py:2473 -msgid "Last used printing machines" -msgstr "" - -#: common/models.py:2474 msgid "Save the last used printing machines for a user" -msgstr "" +msgstr "Uložte poslední použité tiskárny pro uživatele" -#: common/models.py:2517 +#: common/models.py:2487 common/models.py:2488 common/models.py:2636 +#: common/models.py:2637 common/models.py:2882 common/models.py:2883 +#: common/models.py:3193 common/models.py:3194 part/models.py:3193 +#: part/models.py:3280 part/models.py:3353 part/models.py:3381 +#: plugin/models.py:274 plugin/models.py:275 +#: report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3036 users/models.py:111 +msgid "User" +msgstr "Uživatel" + +#: common/models.py:2510 msgid "Price break quantity" -msgstr "" +msgstr "Množství cenové slevy" -#: common/models.py:2524 company/serializers.py:496 order/admin.py:42 -#: order/models.py:1333 order/models.py:2241 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1885 +#: common/models.py:2517 company/serializers.py:472 order/admin.py:42 +#: order/models.py:1346 order/models.py:2265 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1886 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:741 +#: templates/js/translated/return_order.js:740 msgid "Price" msgstr "Cena" -#: common/models.py:2525 +#: common/models.py:2518 msgid "Unit price at specified quantity" -msgstr "" +msgstr "Jednotková cena při stanoveném množství" -#: common/models.py:2696 common/models.py:2881 +#: common/models.py:2613 common/models.py:2798 msgid "Endpoint" -msgstr "" +msgstr "Koncový bod" -#: common/models.py:2697 +#: common/models.py:2614 msgid "Endpoint at which this webhook is received" -msgstr "" +msgstr "Koncový bod, ve kterém je tento webhook přijímán" -#: common/models.py:2707 +#: common/models.py:2624 msgid "Name for this webhook" -msgstr "" +msgstr "Název tohoto webhooku" -#: common/models.py:2711 company/models.py:160 company/models.py:813 -#: machine/models.py:39 part/admin.py:88 part/models.py:1045 -#: plugin/models.py:56 templates/js/translated/company.js:523 +#: common/models.py:2628 company/models.py:163 company/models.py:782 +#: machine/models.py:39 part/admin.py:88 part/models.py:1081 +#: 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 @@ -3584,140 +3410,212 @@ msgstr "" #: templates/js/translated/table_filters.js:716 #: templates/js/translated/table_filters.js:796 users/models.py:182 msgid "Active" -msgstr "" +msgstr "Aktivní" -#: common/models.py:2711 +#: common/models.py:2628 msgid "Is this webhook active" -msgstr "" +msgstr "Je tento webhook aktivní" -#: common/models.py:2727 users/models.py:159 +#: common/models.py:2644 users/models.py:159 msgid "Token" -msgstr "" +msgstr "Token" -#: common/models.py:2728 +#: common/models.py:2645 msgid "Token for access" -msgstr "" +msgstr "Token pro přístup" -#: common/models.py:2736 +#: common/models.py:2653 msgid "Secret" msgstr "" -#: common/models.py:2737 +#: common/models.py:2654 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2845 +#: common/models.py:2762 msgid "Message ID" msgstr "" -#: common/models.py:2846 +#: common/models.py:2763 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2854 +#: common/models.py:2771 msgid "Host" msgstr "" -#: common/models.py:2855 +#: common/models.py:2772 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2863 +#: common/models.py:2780 msgid "Header" msgstr "" -#: common/models.py:2864 +#: common/models.py:2781 msgid "Header of this message" msgstr "" -#: common/models.py:2871 +#: common/models.py:2788 msgid "Body" msgstr "" -#: common/models.py:2872 +#: common/models.py:2789 msgid "Body of this message" msgstr "" -#: common/models.py:2882 +#: common/models.py:2799 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2887 +#: common/models.py:2804 msgid "Worked on" msgstr "" -#: common/models.py:2888 +#: common/models.py:2805 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3014 +#: common/models.py:2931 msgid "Id" msgstr "" -#: common/models.py:3016 templates/js/translated/company.js:965 +#: common/models.py:2933 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:60 +#: common/models.py:2935 common/models.py:3177 company/models.py:149 +#: company/models.py:440 company/models.py:500 company/models.py:799 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 +#: part/admin.py:55 part/models.py:955 +#: 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:2456 +#: templates/js/translated/purchase_order.js:2040 +#: templates/js/translated/purchase_order.js:2204 +#: templates/js/translated/return_order.js:779 +#: templates/js/translated/sales_order.js:1092 +#: templates/js/translated/sales_order.js:2023 +msgid "Link" +msgstr "Odkaz" + +#: common/models.py:2937 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3022 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2939 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:3024 templates/js/translated/news.js:52 +#: common/models.py:2941 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Read" msgstr "" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Was this news item read?" msgstr "" -#: common/models.py:3044 company/models.py:156 part/models.py:929 +#: common/models.py:2961 company/models.py:159 part/models.py:965 #: 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_base.html:35 +#: report/templates/report/inventree_return_order_report.html:35 #: stock/templates/stock/item_base.html:133 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Obrazek" -#: common/models.py:3044 +#: common/models.py:2961 msgid "Image file" msgstr "" -#: common/models.py:3086 +#: common/models.py:2973 common/models.py:3161 +msgid "Target model type for this image" +msgstr "" + +#: common/models.py:2977 +msgid "Target model ID for this image" +msgstr "" + +#: common/models.py:3018 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3105 +#: common/models.py:3037 msgid "Unit name" msgstr "" -#: common/models.py:3112 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3044 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3113 +#: common/models.py:3045 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3120 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3052 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3121 +#: common/models.py:3053 msgid "Unit definition" msgstr "" +#: common/models.py:3111 common/models.py:3168 stock/models.py:2426 +#: templates/js/translated/attachment.js:119 +#: templates/js/translated/attachment.js:345 +msgid "Attachment" +msgstr "Příloha" + +#: common/models.py:3123 +msgid "Missing file" +msgstr "Chybějící soubor" + +#: common/models.py:3124 +msgid "Missing external link" +msgstr "Chybějící externí odkaz" + +#: common/models.py:3169 +msgid "Select file to attach" +msgstr "Vyberte soubor k přiložení" + +#: common/models.py:3184 templates/js/translated/attachment.js:120 +#: templates/js/translated/attachment.js:360 +msgid "Comment" +msgstr "Komentář" + +#: common/models.py:3185 +msgid "Attachment comment" +msgstr "" + +#: common/models.py:3201 +msgid "Upload date" +msgstr "" + +#: common/models.py:3202 +msgid "Date the file was uploaded" +msgstr "" + +#: common/models.py:3206 +msgid "File size" +msgstr "" + +#: common/models.py:3206 +msgid "File size in bytes" +msgstr "" + +#: common/models.py:3244 common/serializers.py:553 +msgid "Invalid model type specified for attachment" +msgstr "" + #: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" @@ -3736,7 +3634,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:468 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:472 msgid "Items Received" msgstr "" @@ -3752,72 +3650,101 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:333 +#: common/serializers.py:371 msgid "Is Running" msgstr "" -#: common/serializers.py:339 +#: common/serializers.py:377 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:345 +#: common/serializers.py:383 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:351 +#: common/serializers.py:389 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Task ID" msgstr "" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Unique task ID" msgstr "" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock" msgstr "" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock time" -msgstr "" +msgstr "Čas uzamčení" -#: common/serializers.py:370 +#: common/serializers.py:408 msgid "Task name" -msgstr "" +msgstr "Jméno úkolu" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function" -msgstr "" +msgstr "Funkce" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function name" -msgstr "" +msgstr "Název funkce" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Arguments" -msgstr "" +msgstr "Argumenty" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Task arguments" -msgstr "" +msgstr "Argumenty úlohy" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Keyword Arguments" -msgstr "" +msgstr "Argumenty klíčových slov" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Task keyword arguments" -msgstr "" +msgstr "Argumenty klíčových slov úlohy" + +#: common/serializers.py:525 +msgid "Filename" +msgstr "Název souboru" + +#: common/serializers.py:532 report/api.py:100 report/serializers.py:53 +msgid "Model Type" +msgstr "Typ modelu" + +#: common/serializers.py:559 +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:77 +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:89 +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:100 +msgid "An empty domain is not allowed." +msgstr "Prázdná doména není povolena." + +#: common/validators.py:102 +#, python-brace-format +msgid "Invalid domain name: {domain}" +msgstr "Neplatný název domény: {domain}" #: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" -msgstr "" +msgstr "Nahrát soubor" #: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 @@ -3825,19 +3752,19 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" -msgstr "" +msgstr "Přiřadit pole" #: common/views.py:84 msgid "Match Items" -msgstr "" +msgstr "Přiřadit položky" #: common/views.py:401 msgid "Fields matching failed" -msgstr "" +msgstr "Shoda polí se nezdařila" #: common/views.py:464 msgid "Parts imported" -msgstr "" +msgstr "Importované díly" #: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 @@ -3848,212 +3775,224 @@ msgstr "" #: templates/patterns/wizard/match_fields.html:26 #: templates/patterns/wizard/upload.html:35 msgid "Previous Step" -msgstr "" +msgstr "Předchozí krok" -#: company/api.py:164 +#: company/api.py:144 msgid "Part is Active" -msgstr "" +msgstr "Díl je aktivní" -#: company/api.py:168 +#: company/api.py:148 msgid "Manufacturer is Active" -msgstr "" +msgstr "Výrobce je aktivní" -#: company/api.py:317 +#: company/api.py:281 msgid "Supplier Part is Active" -msgstr "" +msgstr "Díl dodavatele je aktivní" -#: company/api.py:321 +#: company/api.py:285 msgid "Internal Part is Active" -msgstr "" +msgstr "Interní díl je aktivní" -#: company/api.py:325 +#: company/api.py:289 msgid "Supplier is Active" -msgstr "" +msgstr "Dodavatel je aktivní" -#: company/models.py:114 +#: company/models.py:100 company/models.py:365 +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 stock/api.py:806 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +msgid "Company" +msgstr "Společnost" + +#: company/models.py:101 company/views.py:51 +#: templates/js/translated/search.js:192 +msgid "Companies" +msgstr "Společnosti" + +#: company/models.py:117 msgid "Company description" -msgstr "" +msgstr "Popis společnosti" -#: company/models.py:115 +#: company/models.py:118 msgid "Description of the company" -msgstr "" +msgstr "Popis společnosti" -#: company/models.py:120 company/templates/company/company_base.html:106 +#: company/models.py:123 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:532 msgid "Website" msgstr "Webová stránka" -#: company/models.py:120 +#: company/models.py:123 msgid "Company website URL" msgstr "Webové stránky společnosti" -#: company/models.py:125 +#: company/models.py:128 msgid "Phone number" msgstr "Telefonní číslo" -#: company/models.py:127 +#: company/models.py:130 msgid "Contact phone number" msgstr "Kontaktní telefonní číslo" -#: company/models.py:134 +#: company/models.py:137 msgid "Contact email address" msgstr "Kontaktní e-mailová adresa" -#: company/models.py:139 company/templates/company/company_base.html:145 -#: order/models.py:331 order/templates/order/order_base.html:203 +#: company/models.py:142 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:214 +#: order/templates/order/sales_order_base.html:218 msgid "Contact" msgstr "Kontakt" -#: company/models.py:141 +#: company/models.py:144 msgid "Point of contact" msgstr "Kontaktní místo" -#: company/models.py:147 +#: company/models.py:150 msgid "Link to external company information" -msgstr "" +msgstr "Odkaz na externí informace o společnosti" -#: company/models.py:160 +#: company/models.py:163 msgid "Is this company active?" -msgstr "" +msgstr "Je tato společnost aktivní?" -#: company/models.py:165 +#: company/models.py:168 msgid "is customer" msgstr "je zákazník" -#: company/models.py:166 +#: company/models.py:169 msgid "Do you sell items to this company?" -msgstr "" +msgstr "Prodáváte zboží této společnosti?" -#: company/models.py:171 +#: company/models.py:174 msgid "is supplier" -msgstr "" +msgstr "je dodavatel" -#: company/models.py:172 +#: company/models.py:175 msgid "Do you purchase items from this company?" -msgstr "" +msgstr "Zakupujete zboží od této společnosti?" -#: company/models.py:177 +#: company/models.py:180 msgid "is manufacturer" -msgstr "" +msgstr "je výrobce" -#: company/models.py:178 +#: company/models.py:181 msgid "Does this company manufacture parts?" -msgstr "" +msgstr "Vyrábí tato společnost díly?" -#: company/models.py:186 +#: company/models.py:189 msgid "Default currency used for this company" -msgstr "" +msgstr "Výchozí měna používaná pro tuto společnost" -#: company/models.py:273 company/models.py:382 -#: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:776 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 -msgid "Company" -msgstr "Společnost" - -#: company/models.py:383 +#: company/models.py:366 msgid "Select company" -msgstr "" +msgstr "Vyberte společnost" -#: company/models.py:388 +#: company/models.py:371 msgid "Address title" -msgstr "" +msgstr "Název adresy" -#: company/models.py:389 +#: company/models.py:372 msgid "Title describing the address entry" -msgstr "" +msgstr "Název popisující záznam adresy" -#: company/models.py:395 +#: company/models.py:378 msgid "Primary address" -msgstr "" +msgstr "Primární adresa" -#: company/models.py:396 +#: company/models.py:379 msgid "Set as primary address" -msgstr "" +msgstr "Nastavit jako primární adresu" -#: company/models.py:401 templates/js/translated/company.js:914 +#: company/models.py:384 templates/js/translated/company.js:914 #: templates/js/translated/company.js:971 msgid "Line 1" -msgstr "" +msgstr "Řádek 1" -#: company/models.py:402 +#: company/models.py:385 msgid "Address line 1" -msgstr "" +msgstr "1. řádek adresy" -#: company/models.py:408 templates/js/translated/company.js:915 +#: company/models.py:391 templates/js/translated/company.js:915 #: templates/js/translated/company.js:977 msgid "Line 2" -msgstr "" +msgstr "Řádek 2" -#: company/models.py:409 +#: company/models.py:392 msgid "Address line 2" -msgstr "" +msgstr "2. řádek adresy" -#: company/models.py:415 company/models.py:416 +#: company/models.py:398 company/models.py:399 #: templates/js/translated/company.js:983 msgid "Postal code" -msgstr "" +msgstr "PSČ" -#: company/models.py:422 +#: company/models.py:405 msgid "City/Region" -msgstr "" +msgstr "Město/Region" -#: company/models.py:423 +#: company/models.py:406 msgid "Postal code city/region" -msgstr "" +msgstr "PSČ město/region" -#: company/models.py:429 +#: company/models.py:412 msgid "State/Province" -msgstr "" +msgstr "Stát/kraj" -#: company/models.py:430 +#: company/models.py:413 msgid "State or province" -msgstr "" +msgstr "Stát nebo provincie" -#: company/models.py:436 templates/js/translated/company.js:1001 +#: company/models.py:419 templates/js/translated/company.js:1001 msgid "Country" -msgstr "" +msgstr "Země" -#: company/models.py:437 +#: company/models.py:420 msgid "Address country" -msgstr "" +msgstr "Adresovaná země" -#: company/models.py:443 +#: company/models.py:426 msgid "Courier shipping notes" -msgstr "" +msgstr "Doručovací poznámky pro kurýra" -#: company/models.py:444 +#: company/models.py:427 msgid "Notes for shipping courier" -msgstr "" +msgstr "Poznámky pro kurýra" -#: company/models.py:450 +#: company/models.py:433 msgid "Internal shipping notes" -msgstr "" +msgstr "Interní přepravní poznámky" -#: company/models.py:451 +#: company/models.py:434 msgid "Shipping notes for internal use" -msgstr "" +msgstr "Doručovací poznámky pro interní použití" -#: company/models.py:458 +#: company/models.py:441 msgid "Link to address information (external)" -msgstr "" +msgstr "Odkaz na informace o adrese (externí)" -#: company/models.py:489 company/models.py:791 stock/models.py:751 -#: stock/serializers.py:266 stock/templates/stock/item_base.html:142 +#: company/models.py:463 company/models.py:574 company/models.py:792 +#: 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:475 company/models.py:760 stock/models.py:766 +#: stock/serializers.py:422 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Základní díl" -#: company/models.py:491 company/models.py:793 +#: company/models.py:477 company/models.py:762 msgid "Select part" msgstr "Zvolte díl" -#: company/models.py:500 company/templates/company/company_base.html:82 +#: company/models.py:486 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:515 +#: company/templates/company/supplier_part.html:145 part/serializers.py:517 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4063,213 +4002,214 @@ msgstr "Zvolte díl" msgid "Manufacturer" msgstr "Výrobce" -#: company/models.py:501 +#: company/models.py:487 msgid "Select manufacturer" msgstr "Vyberte výrobce" -#: company/models.py:507 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:525 +#: company/models.py:493 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:527 #: 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:1800 -#: templates/js/translated/purchase_order.js:1852 -#: templates/js/translated/purchase_order.js:2054 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1801 +#: templates/js/translated/purchase_order.js:1851 +#: templates/js/translated/purchase_order.js:2053 msgid "MPN" -msgstr "" +msgstr "MPN" -#: company/models.py:508 +#: company/models.py:494 msgid "Manufacturer Part Number" msgstr "Číslo dílu výrobce" -#: company/models.py:515 +#: company/models.py:501 msgid "URL for external manufacturer part link" -msgstr "" +msgstr "URL pro odkaz na díl externího výrobce" -#: company/models.py:523 +#: company/models.py:510 msgid "Manufacturer part description" msgstr "Popis dílu výrobce" -#: company/models.py:580 company/models.py:607 company/models.py:823 -#: 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:614 +#: company/models.py:581 msgid "Parameter name" msgstr "Název parametru" -#: company/models.py:620 -#: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2436 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1492 -#: templates/js/translated/stock.js:1519 +#: company/models.py:587 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2418 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1493 +#: templates/js/translated/stock.js:1522 msgid "Value" msgstr "Hodnota" -#: company/models.py:621 +#: company/models.py:588 msgid "Parameter value" msgstr "Hodnota parametru" -#: company/models.py:628 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1009 part/models.py:3623 +#: company/models.py:595 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1045 part/models.py:3646 #: part/templates/part/part_base.html:284 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1511 -#: templates/js/translated/part.js:1615 templates/js/translated/part.js:2370 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1512 +#: templates/js/translated/part.js:1616 templates/js/translated/part.js:2370 msgid "Units" msgstr "Jednotky" -#: company/models.py:629 +#: company/models.py:596 msgid "Parameter units" -msgstr "" +msgstr "Jednotky parametru" -#: company/models.py:731 +#: company/models.py:648 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:452 +#: stock/models.py:777 stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:1600 +#: templates/js/translated/purchase_order.js:752 +#: templates/js/translated/stock.js:2280 +msgid "Supplier Part" +msgstr "Díl dodavatele" + +#: company/models.py:700 msgid "Pack units must be compatible with the base part units" -msgstr "" +msgstr "Jednotky balení musí být kompatibilní s jednotkami základních dílů" -#: company/models.py:738 +#: company/models.py:707 msgid "Pack units must be greater than zero" -msgstr "" +msgstr "Jednotky balení musí být větší než nula" -#: company/models.py:752 +#: company/models.py:721 msgid "Linked manufacturer part must reference the same base part" -msgstr "" +msgstr "Odkazovaný díl výrobce musí odkazovat na stejný základní díl" -#: company/models.py:801 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:465 +#: company/models.py:770 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:499 plugin/builtin/suppliers/digikey.py:25 +#: part/serializers.py:501 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:1768 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1769 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1690 +#: templates/js/translated/purchase_order.js:1689 #: templates/js/translated/table_filters.js:804 msgid "Supplier" msgstr "Dodavatel" -#: company/models.py:802 +#: company/models.py:771 msgid "Select supplier" -msgstr "" +msgstr "Vyberte dodavatele" -#: company/models.py:808 part/serializers.py:510 +#: company/models.py:777 part/serializers.py:512 msgid "Supplier stock keeping unit" -msgstr "" +msgstr "Skladová evidence dodavatele" -#: company/models.py:814 +#: company/models.py:783 msgid "Is this supplier part active?" -msgstr "" +msgstr "Je tento díl dodavatele aktivní?" -#: company/models.py:824 +#: company/models.py:793 msgid "Select manufacturer part" -msgstr "" +msgstr "Vyberte díl výrobce" -#: company/models.py:831 +#: company/models.py:800 msgid "URL for external supplier part link" -msgstr "" +msgstr "Adresa URL pro odkaz na externí díl dodavatele" -#: company/models.py:839 +#: company/models.py:809 msgid "Supplier part description" -msgstr "" +msgstr "Popis dílu dodavatele" -#: company/models.py:846 company/templates/company/supplier_part.html:187 -#: part/admin.py:418 part/models.py:4070 part/templates/part/upload_bom.html:59 +#: company/models.py:816 company/templates/company/supplier_part.html:187 +#: part/admin.py:412 part/models.py:4093 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 -#: report/templates/report/inventree_po_report_base.html:32 -#: report/templates/report/inventree_return_order_report_base.html:27 -#: report/templates/report/inventree_slr_report.html:105 -#: report/templates/report/inventree_so_report_base.html:32 -#: stock/serializers.py:579 +#: 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:710 msgid "Note" msgstr "Poznámka" -#: company/models.py:855 part/models.py:1967 +#: company/models.py:825 part/models.py:2003 msgid "base cost" -msgstr "" +msgstr "základní cena" -#: company/models.py:856 part/models.py:1968 +#: company/models.py:826 part/models.py:2004 msgid "Minimum charge (e.g. stocking fee)" -msgstr "" +msgstr "Minimální poplatek (např. poplatek za skladování)" -#: company/models.py:863 company/templates/company/supplier_part.html:160 -#: stock/admin.py:224 stock/models.py:782 stock/serializers.py:1350 +#: company/models.py:833 company/templates/company/supplier_part.html:160 +#: stock/admin.py:228 stock/models.py:797 stock/serializers.py:1466 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2424 msgid "Packaging" -msgstr "" +msgstr "Balení" -#: company/models.py:864 +#: company/models.py:834 msgid "Part packaging" -msgstr "" +msgstr "Balení dílu" -#: company/models.py:869 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 +#: company/models.py:839 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 #: 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:2085 -#: templates/js/translated/purchase_order.js:2102 +#: templates/js/translated/purchase_order.js:2084 +#: templates/js/translated/purchase_order.js:2101 msgid "Pack Quantity" -msgstr "" +msgstr "Počet kusů v balení" -#: company/models.py:871 +#: company/models.py:841 msgid "Total quantity supplied in a single pack. Leave empty for single items." -msgstr "" +msgstr "Celkové množství dodávané v jednom balení. Pro jednotlivé položky ponechte prázdné." -#: company/models.py:890 part/models.py:1974 +#: company/models.py:860 part/models.py:2010 msgid "multiple" -msgstr "" +msgstr "více" -#: company/models.py:891 +#: company/models.py:861 msgid "Order multiple" -msgstr "" +msgstr "Objednat více" -#: company/models.py:903 +#: company/models.py:873 msgid "Quantity available from supplier" -msgstr "" +msgstr "Množství dostupné od dodavatele" -#: company/models.py:909 +#: company/models.py:879 msgid "Availability Updated" -msgstr "" +msgstr "Dostupnost aktualizována" -#: company/models.py:910 +#: company/models.py:880 msgid "Date of last update of availability data" -msgstr "" +msgstr "Datum poslední aktualizace údajů o dostupnosti" -#: company/serializers.py:163 +#: company/serializers.py:161 msgid "Default currency used for this supplier" -msgstr "" +msgstr "Výchozí měna používaná pro tohoto dodavatele" -#: company/serializers.py:381 part/admin.py:126 +#: company/serializers.py:357 part/admin.py:126 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 msgid "In Stock" -msgstr "" +msgstr "Skladem" #: company/templates/company/company_base.html:16 #: 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:306 -#: templates/js/translated/part.js:814 templates/js/translated/part.js:1218 +#: templates/js/translated/model_renderers.js:312 +#: templates/js/translated/part.js:815 templates/js/translated/part.js:1219 msgid "Inactive" -msgstr "" +msgstr "Neaktivní" #: company/templates/company/company_base.html:27 #: templates/js/translated/purchase_order.js:242 msgid "Create Purchase Order" -msgstr "" +msgstr "Vytvořit nákupní objednávku" #: company/templates/company/company_base.html:33 msgid "Company actions" -msgstr "" +msgstr "Akce společnosti" #: company/templates/company/company_base.html:38 msgid "Edit company information" @@ -4293,13 +4233,13 @@ msgstr "Odstranit společnost" #: company/templates/company/manufacturer_part.html:51 #: company/templates/company/supplier_part.html:83 #: part/templates/part/part_thumb.html:20 -#: report/templates/report/inventree_build_order_base.html:98 -#: report/templates/report/inventree_po_report_base.html:40 -#: report/templates/report/inventree_so_report_base.html:40 -#: report/templates/report/inventree_test_report_base.html:84 -#: report/templates/report/inventree_test_report_base.html:163 +#: report/templates/report/inventree_build_order_report.html:98 +#: report/templates/report/inventree_purchase_order_report.html:40 +#: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_test_report.html:84 +#: report/templates/report/inventree_test_report.html:163 msgid "Part image" -msgstr "" +msgstr "Obrázek dílu" #: company/templates/company/company_base.html:61 #: part/templates/part/part_thumb.html:12 @@ -4316,15 +4256,15 @@ msgstr "Stáhnout obrázek z URL" msgid "Delete image" msgstr "Smazat obrázek" -#: company/templates/company/company_base.html:92 order/models.py:910 -#: order/models.py:2008 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:804 -#: stock/models.py:805 stock/serializers.py:1100 +#: company/templates/company/company_base.html:92 order/models.py:938 +#: order/models.py:2032 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:819 +#: stock/models.py:820 stock/serializers.py:1216 #: 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:296 -#: templates/js/translated/sales_order.js:784 +#: templates/js/translated/return_order.js:295 +#: templates/js/translated/sales_order.js:820 #: templates/js/translated/stock.js:2959 #: templates/js/translated/table_filters.js:808 msgid "Customer" @@ -4332,12 +4272,12 @@ msgstr "Zákazník" #: company/templates/company/company_base.html:117 msgid "Uses default currency" -msgstr "" +msgstr "Použít výchozí měnu" -#: company/templates/company/company_base.html:124 order/models.py:341 +#: 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:221 +#: order/templates/order/sales_order_base.html:225 msgid "Address" msgstr "Adresa" @@ -4346,30 +4286,30 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:528 +#: part/templates/part/part_base.html:527 msgid "Remove Image" -msgstr "" +msgstr "Odstranit obrázek" #: company/templates/company/company_base.html:212 msgid "Remove associated image from this company" -msgstr "" +msgstr "Odstranit přidružený obrázek z této společnosti" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:530 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Odstranit" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:560 +#: part/templates/part/part_base.html:559 msgid "Upload Image" -msgstr "" +msgstr "Nahrát obrázek" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:614 +#: part/templates/part/part_base.html:613 msgid "Download Image" -msgstr "" +msgstr "Stáhnout obrázek" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 @@ -4421,12 +4361,12 @@ msgstr "Zakoupené objednávky" #: company/templates/company/detail.html:79 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" -msgstr "" +msgstr "Vytvořit novou nákupní objednávku" #: company/templates/company/detail.html:80 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" -msgstr "" +msgstr "Nová nákupní objednávka" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 @@ -4439,21 +4379,21 @@ msgstr "" #: templates/js/translated/search.js:219 templates/navbar.html:62 #: users/models.py:209 msgid "Sales Orders" -msgstr "" +msgstr "Prodejní objednávky" #: company/templates/company/detail.html:105 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" -msgstr "" +msgstr "Vytvořit novou prodejní objednávku" #: company/templates/company/detail.html:106 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" -msgstr "" +msgstr "Nová prodejní objednávka" #: company/templates/company/detail.html:126 msgid "Assigned Stock" -msgstr "" +msgstr "Přiřazené zásoby" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 @@ -4464,17 +4404,17 @@ msgstr "" #: templates/js/translated/search.js:232 templates/navbar.html:65 #: users/models.py:210 msgid "Return Orders" -msgstr "" +msgstr "Návratové objednávky" #: company/templates/company/detail.html:146 #: order/templates/order/return_orders.html:20 msgid "Create new return order" -msgstr "" +msgstr "Vytvořit novou návratovou objednávku" #: company/templates/company/detail.html:147 #: order/templates/order/return_orders.html:21 msgid "New Return Order" -msgstr "" +msgstr "Nová návratová objednávka" #: company/templates/company/detail.html:168 msgid "Company Notes" @@ -4482,26 +4422,26 @@ msgstr "Poznámky ke společnosti" #: company/templates/company/detail.html:183 msgid "Company Contacts" -msgstr "" +msgstr "Kontakty na společnost" #: company/templates/company/detail.html:187 #: company/templates/company/detail.html:188 msgid "Add Contact" -msgstr "" +msgstr "Přidat kontakt" #: company/templates/company/detail.html:206 msgid "Company addresses" -msgstr "" +msgstr "Adresy společnosti" #: company/templates/company/detail.html:210 #: company/templates/company/detail.html:211 msgid "Add Address" -msgstr "" +msgstr "Přidat adresu" #: company/templates/company/manufacturer_part.html:15 company/views.py:37 #: templates/InvenTree/search.html:180 templates/navbar.html:49 msgid "Manufacturers" -msgstr "" +msgstr "Výrobci" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 @@ -4512,86 +4452,77 @@ msgstr "Objednávka dílů" #: company/templates/company/manufacturer_part.html:39 #: templates/js/translated/company.js:1343 msgid "Edit manufacturer part" -msgstr "" +msgstr "Upravit díl výrobce" #: company/templates/company/manufacturer_part.html:43 #: templates/js/translated/company.js:1344 msgid "Delete manufacturer part" -msgstr "" +msgstr "Odstranit díl výrobce" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:454 +#: company/templates/company/supplier_part.html:97 order/api.py:458 msgid "Internal Part" -msgstr "" +msgstr "Interní díl" #: company/templates/company/manufacturer_part.html:95 msgid "No manufacturer information available" -msgstr "" +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:821 +#: part/admin.py:122 part/serializers.py:824 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" -msgstr "" +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 msgid "Parameters" -msgstr "" +msgstr "Parametry" #: company/templates/company/manufacturer_part.html:160 #: part/templates/part/detail.html:200 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" -msgstr "" +msgstr "Nový parametr" -#: company/templates/company/manufacturer_part.html:206 -#: templates/js/translated/part.js:1422 +#: company/templates/company/manufacturer_part.html:196 +#: templates/js/translated/part.js:1423 msgid "Add Parameter" -msgstr "" +msgstr "Přidat parametr" #: company/templates/company/sidebar.html:6 msgid "Manufactured Parts" -msgstr "" +msgstr "Vyrobené díly" #: company/templates/company/sidebar.html:10 msgid "Supplied Parts" -msgstr "" +msgstr "Dodané díly" #: company/templates/company/sidebar.html:16 msgid "Supplied Stock Items" -msgstr "" +msgstr "Dodané skladové položky" #: company/templates/company/sidebar.html:25 msgid "Assigned Stock Items" -msgstr "" +msgstr "Přiřazené skladové položky" #: company/templates/company/sidebar.html:33 msgid "Contacts" -msgstr "" +msgstr "Kontakty" #: company/templates/company/sidebar.html:35 msgid "Addresses" -msgstr "" - -#: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:448 -#: stock/models.py:762 stock/templates/stock/item_base.html:233 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2279 -msgid "Supplier Part" -msgstr "" +msgstr "Adresy" #: company/templates/company/supplier_part.html:50 #: templates/js/translated/company.js:1526 msgid "Supplier part actions" -msgstr "" +msgstr "Akce týkající se dílu dodavatele" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 @@ -4603,7 +4534,7 @@ msgstr "Objednávka dílů" #: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 msgid "Update Availability" -msgstr "" +msgstr "Aktualizovat dostupnost" #: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 @@ -4627,224 +4558,146 @@ msgstr "Vymazat dodavatele dílu" #: company/templates/company/supplier_part.html:133 msgid "No supplier information available" -msgstr "" +msgstr "Nejsou k dispozici žádné informace o dodavateli" #: company/templates/company/supplier_part.html:139 part/bom.py:279 -#: part/bom.py:311 part/serializers.py:509 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 +#: part/bom.py:311 part/serializers.py:511 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1787 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1851 -#: templates/js/translated/purchase_order.js:2029 +#: templates/js/translated/purchase_order.js:1850 +#: templates/js/translated/purchase_order.js:2028 msgid "SKU" -msgstr "" +msgstr "Číslo zboží (SKU)" #: company/templates/company/supplier_part.html:206 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:199 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 msgid "Create new stock item" -msgstr "" +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:200 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 #: templates/js/translated/stock.js:537 msgid "New Stock Item" -msgstr "" +msgstr "Nová skladová položka" #: company/templates/company/supplier_part.html:223 msgid "Supplier Part Orders" -msgstr "" +msgstr "Objednávky dílu dodavatele" #: company/templates/company/supplier_part.html:246 msgid "Pricing Information" -msgstr "" +msgstr "Informace o cenách" #: company/templates/company/supplier_part.html:251 #: templates/js/translated/company.js:398 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" -msgstr "" +msgstr "Přidat cenovou slevu" #: company/templates/company/supplier_part.html:276 msgid "Supplier Part QR Code" -msgstr "" +msgstr "QR kód dílu dodavatele" #: company/templates/company/supplier_part.html:287 msgid "Link Barcode to Supplier Part" -msgstr "" +msgstr "Propojit čárový kód s dílem dodavatele" #: company/templates/company/supplier_part.html:359 msgid "Update Part Availability" -msgstr "" +msgstr "Aktualizovat dostupnost dílu" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:820 part/stocktake.py:223 +#: part/serializers.py:823 part/stocktake.py:224 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 -#: stock/serializers.py:787 stock/serializers.py:951 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:68 +#: stock/serializers.py:918 stock/serializers.py:1082 #: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:184 -#: stock/templates/stock/location.html:196 +#: stock/templates/stock/location.html:191 +#: stock/templates/stock/location.html:203 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1061 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2766 #: users/models.py:206 msgid "Stock Items" -msgstr "" +msgstr "Skladové položky" #: company/templates/company/supplier_part_sidebar.html:9 msgid "Supplier Part Pricing" -msgstr "" +msgstr "Ceny dílu dodavatele" #: company/views.py:32 msgid "New Supplier" -msgstr "" +msgstr "Nový dodavatel" #: company/views.py:38 msgid "New Manufacturer" -msgstr "" +msgstr "Nový výrobce" #: company/views.py:43 templates/InvenTree/search.html:210 #: templates/navbar.html:60 msgid "Customers" -msgstr "" +msgstr "Zákazníci" #: company/views.py:44 msgid "New Customer" -msgstr "" - -#: company/views.py:51 templates/js/translated/search.js:192 -msgid "Companies" -msgstr "" +msgstr "Nový zákazník" #: company/views.py:52 msgid "New Company" -msgstr "" +msgstr "Nová společnost" -#: label/api.py:247 -msgid "Error printing label" -msgstr "" - -#: label/models.py:120 -msgid "Label name" -msgstr "" - -#: label/models.py:128 -msgid "Label description" -msgstr "" - -#: label/models.py:136 -msgid "Label" -msgstr "" - -#: label/models.py:137 -msgid "Label template file" -msgstr "" - -#: label/models.py:143 part/models.py:3494 report/models.py:324 -#: templates/js/translated/part.js:2900 -#: templates/js/translated/table_filters.js:481 -msgid "Enabled" -msgstr "" - -#: label/models.py:144 -msgid "Label template is enabled" -msgstr "" - -#: label/models.py:149 -msgid "Width [mm]" -msgstr "" - -#: label/models.py:150 -msgid "Label width, specified in mm" -msgstr "" - -#: label/models.py:156 -msgid "Height [mm]" -msgstr "" - -#: label/models.py:157 -msgid "Label height, specified in mm" -msgstr "" - -#: label/models.py:163 report/models.py:317 -msgid "Filename Pattern" -msgstr "" - -#: label/models.py:164 -msgid "Pattern for generating label filenames" -msgstr "" - -#: label/models.py:313 label/models.py:352 label/models.py:377 -#: label/models.py:412 -msgid "Query filters (comma-separated list of key=value pairs)" -msgstr "" - -#: label/models.py:314 label/models.py:353 label/models.py:378 -#: label/models.py:413 report/models.py:345 report/models.py:496 -#: report/models.py:532 report/models.py:568 report/models.py:750 -msgid "Filters" -msgstr "" - -#: label/templates/label/part/part_label.html:31 -#: label/templates/label/stockitem/qr.html:21 -#: label/templates/label/stocklocation/qr.html:20 -#: templates/allauth_2fa/setup.html:18 -msgid "QR Code" -msgstr "" - -#: label/templates/label/part/part_label_code128.html:31 -#: label/templates/label/stocklocation/qr_and_text.html:31 -#: templates/qr_code.html:7 -msgid "QR code" -msgstr "" - -#: machine/machine_types/label_printer.py:217 -msgid "Copies" -msgstr "" +#: generic/states/tests.py:18 order/status_codes.py:13 +msgid "Placed" +msgstr "Umístěno" #: machine/machine_types/label_printer.py:218 +msgid "Copies" +msgstr "Kopie" + +#: machine/machine_types/label_printer.py:219 msgid "Number of copies to print for each label" -msgstr "" +msgstr "Počet kopií, které se mají tisknout pro každý štítek" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Connected" -msgstr "" +msgstr "Připojeno" -#: machine/machine_types/label_printer.py:234 order/api.py:1511 -#: templates/js/translated/sales_order.js:1042 +#: machine/machine_types/label_printer.py:235 order/api.py:1467 +#: templates/js/translated/sales_order.js:1078 msgid "Unknown" -msgstr "" - -#: machine/machine_types/label_printer.py:235 -msgid "Printing" -msgstr "" +msgstr "Neznámý" #: machine/machine_types/label_printer.py:236 -msgid "No media" -msgstr "" +msgid "Printing" +msgstr "Tisk" #: machine/machine_types/label_printer.py:237 -msgid "Disconnected" -msgstr "" +msgid "No media" +msgstr "Žádná média" -#: machine/machine_types/label_printer.py:244 -msgid "Label Printer" -msgstr "" +#: machine/machine_types/label_printer.py:238 +msgid "Disconnected" +msgstr "Odpojeno" #: machine/machine_types/label_printer.py:245 -msgid "Directly print labels for various items." -msgstr "" +msgid "Label Printer" +msgstr "Tiskárna štítků" -#: machine/machine_types/label_printer.py:251 -msgid "Printer Location" -msgstr "" +#: machine/machine_types/label_printer.py:246 +msgid "Directly print labels for various items." +msgstr "Přímo vytisknout štítky pro různé položky." #: machine/machine_types/label_printer.py:252 +msgid "Printer Location" +msgstr "Umístění tiskárny" + +#: machine/machine_types/label_printer.py:253 msgid "Scope the printer to a specific location" -msgstr "" +msgstr "Určení rozsahu tiskárny na konkrétní místo" #: machine/models.py:25 msgid "Name of machine" @@ -4902,18 +4755,19 @@ msgstr "" msgid "Config type" msgstr "" -#: order/admin.py:30 order/models.py:89 -#: report/templates/report/inventree_po_report_base.html:31 -#: report/templates/report/inventree_so_report_base.html:31 +#: 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:2126 -#: templates/js/translated/sales_order.js:1847 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" -#: order/api.py:157 order/templates/order/order_base.html:118 +#: order/api.py:157 order/serializers.py:90 +#: order/templates/order/order_base.html:118 #: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/sales_order_base.html:122 msgid "Order Status" msgstr "" @@ -4926,567 +4780,623 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:433 order/api.py:813 order/models.py:1382 order/models.py:1489 -#: order/models.py:1535 order/models.py:1649 order/models.py:1803 -#: order/models.py:2207 order/models.py:2258 -#: templates/js/translated/sales_order.js:1488 +#: order/api.py:435 order/api.py:801 order/models.py:1395 order/models.py:1504 +#: order/models.py:1550 order/models.py:1664 order/models.py:1818 +#: order/models.py:2231 order/models.py:2282 +#: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:437 order/api.py:834 +#: order/api.py:439 order/api.py:822 msgid "Order Complete" msgstr "" -#: order/api.py:458 +#: order/api.py:462 msgid "Order Pending" msgstr "" -#: order/api.py:1505 order/models.py:1383 order/models.py:1490 -#: order/templates/order/order_base.html:9 +#: order/api.py:1461 order/models.py:380 order/models.py:1396 +#: order/models.py:1505 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 -#: report/templates/report/inventree_po_report_base.html:14 -#: stock/templates/stock/item_base.html:176 +#: report/templates/report/inventree_purchase_order_report.html:14 +#: stock/serializers.py:118 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1746 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:1674 -#: templates/js/translated/stock.js:2259 templates/js/translated/stock.js:2907 +#: templates/js/translated/purchase_order.js:1673 +#: templates/js/translated/stock.js:2260 templates/js/translated/stock.js:2907 msgid "Purchase Order" msgstr "" -#: order/api.py:1509 order/models.py:2208 order/models.py:2259 -#: order/templates/order/return_order_base.html:9 +#: order/api.py:1465 order/models.py:1981 order/models.py:2232 +#: order/models.py:2283 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:13 -#: templates/js/translated/return_order.js:281 +#: report/templates/report/inventree_return_order_report.html:13 +#: templates/js/translated/return_order.js:280 #: templates/js/translated/stock.js:2941 msgid "Return Order" msgstr "" -#: order/models.py:90 +#: order/models.py:91 msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:96 order/serializers.py:70 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:99 order/serializers.py:71 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:247 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:278 +#: order/models.py:290 msgid "Order description (optional)" msgstr "" -#: order/models.py:287 +#: order/models.py:299 msgid "Select project code for this order" msgstr "" -#: order/models.py:291 order/models.py:1288 order/models.py:1702 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 msgid "Link to external page" msgstr "" -#: order/models.py:299 +#: order/models.py:311 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:313 +#: order/models.py:325 msgid "Created By" msgstr "" -#: order/models.py:321 +#: order/models.py:333 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:332 +#: order/models.py:344 msgid "Point of contact for this order" msgstr "" -#: order/models.py:342 +#: order/models.py:354 msgid "Company address for this order" msgstr "" -#: order/models.py:443 order/models.py:899 +#: order/models.py:464 order/models.py:927 msgid "Order reference" msgstr "" -#: order/models.py:451 order/models.py:923 +#: order/models.py:472 order/models.py:951 msgid "Purchase order status" msgstr "" -#: order/models.py:466 +#: order/models.py:487 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:477 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1703 +#: order/models.py:498 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1702 msgid "Supplier Reference" msgstr "" -#: order/models.py:478 +#: order/models.py:499 msgid "Supplier order reference code" msgstr "" -#: order/models.py:487 +#: order/models.py:508 msgid "received by" msgstr "" -#: order/models.py:493 order/models.py:2034 +#: order/models.py:514 order/models.py:2058 msgid "Issue Date" msgstr "" -#: order/models.py:494 order/models.py:2035 +#: order/models.py:515 order/models.py:2059 msgid "Date order was issued" msgstr "" -#: order/models.py:501 order/models.py:2042 +#: order/models.py:522 order/models.py:2066 msgid "Date order was completed" msgstr "" -#: order/models.py:545 +#: order/models.py:566 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:739 +#: order/models.py:760 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:911 +#: order/models.py:939 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:934 order/models.py:2027 +#: order/models.py:962 order/models.py:2051 msgid "Customer Reference " msgstr "" -#: order/models.py:935 order/models.py:2028 +#: order/models.py:963 order/models.py:2052 msgid "Customer order reference code" msgstr "" -#: order/models.py:939 order/models.py:1656 -#: templates/js/translated/sales_order.js:843 -#: templates/js/translated/sales_order.js:1024 +#: order/models.py:967 order/models.py:1671 +#: templates/js/translated/sales_order.js:879 +#: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:948 +#: order/models.py:976 msgid "shipped by" -msgstr "" +msgstr "odesláno společností" -#: order/models.py:999 -msgid "Order cannot be completed as no parts have been assigned" -msgstr "" +#: order/models.py:1025 +msgid "Order is already complete" +msgstr "Objednávka je již dokončena" -#: order/models.py:1004 +#: order/models.py:1028 +msgid "Order is already cancelled" +msgstr "Objednávka je již zrušena" + +#: order/models.py:1032 msgid "Only an open order can be marked as complete" -msgstr "" +msgstr "Pouze otevřená objednávka může být označena jako kompletní" -#: order/models.py:1008 templates/js/translated/sales_order.js:506 +#: order/models.py:1036 msgid "Order cannot be completed as there are incomplete shipments" -msgstr "" +msgstr "Objednávku nelze dokončit, protože dodávky jsou nekompletní" -#: order/models.py:1013 +#: order/models.py:1041 msgid "Order cannot be completed as there are incomplete line items" -msgstr "" +msgstr "Objednávka nemůže být dokončena, protože jsou neúplné řádkové položky" -#: order/models.py:1260 +#: order/models.py:1273 msgid "Item quantity" -msgstr "" +msgstr "Množství položky" -#: order/models.py:1277 +#: order/models.py:1290 msgid "Line item reference" -msgstr "" +msgstr "Odkaz na řádkovou položku" -#: order/models.py:1284 +#: order/models.py:1297 msgid "Line item notes" -msgstr "" +msgstr "Poznámky k řádkovým položkám" -#: order/models.py:1296 +#: order/models.py:1309 msgid "Target date for this line item (leave blank to use the target date from the order)" -msgstr "" +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:1317 +#: order/models.py:1330 msgid "Line item description (optional)" -msgstr "" +msgstr "Popis řádkové položky (nepovinné)" -#: order/models.py:1323 +#: order/models.py:1336 msgid "Context" -msgstr "" +msgstr "Kontext" -#: order/models.py:1324 +#: order/models.py:1337 msgid "Additional context for this line" -msgstr "" +msgstr "Dodatečný kontext pro tento řádek" -#: order/models.py:1334 +#: order/models.py:1347 msgid "Unit price" -msgstr "" +msgstr "Cena za jednotku" -#: order/models.py:1367 +#: order/models.py:1380 msgid "Supplier part must match supplier" -msgstr "" +msgstr "Dodavatelský díl musí odpovídat dodavateli" -#: order/models.py:1374 +#: order/models.py:1387 msgid "deleted" -msgstr "" +msgstr "smazáno" -#: order/models.py:1402 +#: order/models.py:1415 msgid "Supplier part" -msgstr "" +msgstr "Díl dodavatele" -#: order/models.py:1409 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1869 templates/js/translated/part.js:1901 +#: order/models.py:1422 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1870 templates/js/translated/part.js:1902 #: templates/js/translated/purchase_order.js:1306 -#: templates/js/translated/purchase_order.js:2170 -#: templates/js/translated/return_order.js:764 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/return_order.js:763 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" -msgstr "" +msgstr "Doručeno" -#: order/models.py:1410 +#: order/models.py:1423 msgid "Number of items received" -msgstr "" +msgstr "Počet přijatých položek" -#: order/models.py:1418 stock/models.py:923 stock/serializers.py:400 +#: order/models.py:1431 stock/models.py:938 stock/serializers.py:556 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2311 msgid "Purchase Price" -msgstr "" +msgstr "Nákupní cena" -#: order/models.py:1419 +#: order/models.py:1432 msgid "Unit purchase price" -msgstr "" +msgstr "Jednotková nákupní cena" -#: order/models.py:1434 +#: order/models.py:1447 msgid "Where does the Purchaser want this item to be stored?" -msgstr "" +msgstr "Kde si kupující přeje, aby byla tato položka uložena?" -#: order/models.py:1523 +#: order/models.py:1538 msgid "Virtual part cannot be assigned to a sales order" -msgstr "" +msgstr "Virtuální díl nelze přiřadit k prodejní objednávce" -#: order/models.py:1528 +#: order/models.py:1543 msgid "Only salable parts can be assigned to a sales order" -msgstr "" +msgstr "K prodejní objednávce lze přiřadit pouze prodejné díly" -#: order/models.py:1554 part/templates/part/part_pricing.html:107 +#: order/models.py:1569 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" -msgstr "" +msgstr "Prodejní cena" -#: order/models.py:1555 +#: order/models.py:1570 msgid "Unit sale price" -msgstr "" +msgstr "Jednotková prodejní cena" -#: order/models.py:1565 +#: order/models.py:1579 order/status_codes.py:43 +#: 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:1580 msgid "Shipped quantity" -msgstr "" - -#: order/models.py:1657 -msgid "Date of shipment" -msgstr "" - -#: order/models.py:1663 templates/js/translated/sales_order.js:1036 -msgid "Delivery Date" -msgstr "" - -#: order/models.py:1664 -msgid "Date of delivery of shipment" -msgstr "" +msgstr "Odeslané množství" #: order/models.py:1672 +msgid "Date of shipment" +msgstr "Datum odeslání" + +#: order/models.py:1678 templates/js/translated/sales_order.js:1072 +msgid "Delivery Date" +msgstr "Datum doručení" + +#: order/models.py:1679 +msgid "Date of delivery of shipment" +msgstr "Datum doručení zásilky" + +#: order/models.py:1687 msgid "Checked By" -msgstr "" +msgstr "Kontroloval(a)" -#: order/models.py:1673 +#: order/models.py:1688 msgid "User who checked this shipment" -msgstr "" +msgstr "Uživatel, který zkontroloval tuto zásilku" -#: order/models.py:1680 order/models.py:1893 order/serializers.py:1350 -#: order/serializers.py:1460 templates/js/translated/model_renderers.js:448 +#: order/models.py:1695 order/models.py:1908 order/serializers.py:1342 +#: order/serializers.py:1452 templates/js/translated/model_renderers.js:454 msgid "Shipment" -msgstr "" +msgstr "Doprava" -#: order/models.py:1681 +#: order/models.py:1696 msgid "Shipment number" -msgstr "" +msgstr "Číslo zásilky" -#: order/models.py:1689 +#: order/models.py:1704 msgid "Tracking Number" -msgstr "" +msgstr "Sledovací číslo" -#: order/models.py:1690 +#: order/models.py:1705 msgid "Shipment tracking information" -msgstr "" +msgstr "Informace o sledování zásilky" -#: order/models.py:1697 +#: order/models.py:1712 msgid "Invoice Number" -msgstr "" +msgstr "Číslo faktury" -#: order/models.py:1698 +#: order/models.py:1713 msgid "Reference number for associated invoice" -msgstr "" +msgstr "Referenční číslo přiřazené faktury" -#: order/models.py:1718 +#: order/models.py:1733 msgid "Shipment has already been sent" -msgstr "" +msgstr "Zásilka již byla odeslána" -#: order/models.py:1721 +#: order/models.py:1736 msgid "Shipment has no allocated stock items" -msgstr "" +msgstr "Zásilka nemá žádné přidělené skladové položky" -#: order/models.py:1839 order/models.py:1841 +#: order/models.py:1854 order/models.py:1856 msgid "Stock item has not been assigned" -msgstr "" +msgstr "Zásobní položka nebyla přiřazena" -#: order/models.py:1848 +#: order/models.py:1863 msgid "Cannot allocate stock item to a line with a different part" -msgstr "" +msgstr "Nelze přidělit skladovou položku na řádek s jiným dílem" -#: order/models.py:1851 +#: order/models.py:1866 msgid "Cannot allocate stock to a line without a part" -msgstr "" +msgstr "Nelze přidělit skladovou položku na řádek bez dílu" -#: order/models.py:1854 +#: order/models.py:1869 msgid "Allocation quantity cannot exceed stock quantity" -msgstr "" +msgstr "Přidělené množství nesmí překročit množství zásob" -#: order/models.py:1873 order/serializers.py:1227 +#: order/models.py:1888 order/serializers.py:1219 msgid "Quantity must be 1 for serialized stock item" -msgstr "" +msgstr "Množství musí být 1 pro serializovanou skladovou položku" -#: order/models.py:1876 +#: order/models.py:1891 msgid "Sales order does not match shipment" -msgstr "" +msgstr "Prodejní objednávka neodpovídá zásilce" -#: order/models.py:1877 plugin/base/barcodes/api.py:481 +#: order/models.py:1892 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" -msgstr "" +msgstr "Zásilka neodpovídá prodejní objednávce" -#: order/models.py:1885 +#: order/models.py:1900 msgid "Line" -msgstr "" +msgstr "Řádek" -#: order/models.py:1894 +#: order/models.py:1909 msgid "Sales order shipment reference" -msgstr "" +msgstr "Odkaz na zásilku z prodejní objednávky" -#: order/models.py:1907 order/models.py:2215 -#: templates/js/translated/return_order.js:722 +#: order/models.py:1922 order/models.py:2239 +#: templates/js/translated/return_order.js:721 msgid "Item" -msgstr "" +msgstr "Položka" -#: order/models.py:1908 +#: order/models.py:1923 msgid "Select stock item to allocate" -msgstr "" +msgstr "Vyberte skladovou položku pro přidělení" -#: order/models.py:1917 +#: order/models.py:1932 msgid "Enter stock allocation quantity" -msgstr "" +msgstr "Zadejte množství pro přidělení zásob" -#: order/models.py:1997 +#: order/models.py:2021 msgid "Return Order reference" msgstr "" -#: order/models.py:2009 +#: order/models.py:2033 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2021 +#: order/models.py:2045 msgid "Return order status" msgstr "" -#: order/models.py:2200 +#: order/models.py:2224 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2216 +#: order/models.py:2240 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2222 +#: order/models.py:2246 msgid "Received Date" msgstr "" -#: order/models.py:2223 +#: order/models.py:2247 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2234 templates/js/translated/return_order.js:733 +#: order/models.py:2258 templates/js/translated/return_order.js:732 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2235 +#: order/models.py:2259 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2242 +#: order/models.py:2266 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:283 +#: order/serializers.py:79 order/templates/order/po_sidebar.html:5 +#: order/templates/order/return_order_detail.html:18 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_purchase_order_report.html:22 +#: report/templates/report/inventree_return_order_report.html:19 +#: report/templates/report/inventree_sales_order_report.html:22 +msgid "Line Items" +msgstr "" + +#: order/serializers.py:83 +msgid "Completed Lines" +msgstr "" + +#: order/serializers.py:286 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:298 order/serializers.py:1243 +#: order/serializers.py:301 order/serializers.py:1235 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:308 order/serializers.py:1253 +#: order/serializers.py:311 order/serializers.py:1245 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:436 +#: order/serializers.py:439 msgid "Order is not open" msgstr "" -#: order/serializers.py:457 +#: order/serializers.py:460 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:459 +#: order/serializers.py:462 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:472 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:475 +#: order/serializers.py:478 msgid "Merge Items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:480 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:495 +#: order/serializers.py:498 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:501 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:509 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:507 +#: order/serializers.py:510 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:546 order/serializers.py:1321 +#: order/serializers.py:549 order/serializers.py:1313 msgid "Line Item" msgstr "" -#: order/serializers.py:552 +#: order/serializers.py:555 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:562 order/serializers.py:670 order/serializers.py:1676 +#: order/serializers.py:565 order/serializers.py:673 order/serializers.py:1657 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:578 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:581 templates/js/translated/purchase_order.js:1130 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:586 templates/js/translated/purchase_order.js:1154 +#: order/serializers.py:589 templates/js/translated/purchase_order.js:1154 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:597 templates/js/translated/barcode.js:52 +#: order/serializers.py:600 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:598 +#: order/serializers.py:601 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:614 +#: order/serializers.py:617 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:638 +#: order/serializers.py:641 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:686 order/serializers.py:1692 +#: order/serializers.py:689 order/serializers.py:1673 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:702 +#: order/serializers.py:705 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:713 +#: order/serializers.py:716 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1070 +#: order/serializers.py:1062 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1130 +#: order/serializers.py:1122 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1191 order/serializers.py:1330 +#: order/serializers.py:1183 order/serializers.py:1322 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1210 +#: order/serializers.py:1202 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1340 +#: order/serializers.py:1332 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1362 order/serializers.py:1468 +#: order/serializers.py:1354 order/serializers.py:1460 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1365 order/serializers.py:1471 +#: order/serializers.py:1357 order/serializers.py:1463 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1412 +#: order/serializers.py:1404 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1419 +#: order/serializers.py:1411 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1646 +#: order/serializers.py:1627 msgid "Return order line item" msgstr "" -#: order/serializers.py:1652 +#: order/serializers.py:1633 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1655 +#: order/serializers.py:1636 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1684 +#: order/serializers.py:1665 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1762 +#: order/serializers.py:1743 msgid "Line price currency" msgstr "" +#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +msgid "Lost" +msgstr "Ztraceno" + +#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +msgid "Returned" +msgstr "Vráceno" + +#: order/status_codes.py:40 order/status_codes.py:67 +msgid "In Progress" +msgstr "Zpracovává se" + +#: order/status_codes.py:85 +msgid "Return" +msgstr "Vrátit zpět" + +#: order/status_codes.py:88 +msgid "Repair" +msgstr "Oprava" + +#: order/status_codes.py:91 +msgid "Replace" +msgstr "Náhrada" + +#: order/status_codes.py:94 +msgid "Refund" +msgstr "Vrácení peněz" + +#: order/status_codes.py:97 +msgid "Reject" +msgstr "Odmítnout" + #: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" @@ -5553,7 +5463,7 @@ msgstr "" #: order/templates/order/order_base.html:84 #: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:97 msgid "Complete Order" msgstr "" @@ -5563,13 +5473,13 @@ msgstr "" #: order/templates/order/order_base.html:106 #: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:106 +#: order/templates/order/sales_order_base.html:110 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:111 +#: order/templates/order/sales_order_base.html:115 msgid "Order Description" msgstr "" @@ -5578,19 +5488,19 @@ msgid "No suppplier information available" msgstr "" #: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:157 +#: order/templates/order/sales_order_base.html:161 msgid "Completed Line Items" msgstr "" #: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:163 -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:167 +#: order/templates/order/sales_order_base.html:177 msgid "Incomplete" msgstr "" #: order/templates/order/order_base.html:179 #: order/templates/order/return_order_base.html:157 -#: report/templates/report/inventree_build_order_base.html:121 +#: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" @@ -5600,15 +5510,15 @@ msgstr "" #: order/templates/order/order_base.html:228 #: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/sales_order_base.html:243 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:318 +#: order/templates/order/order_base.html:314 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:330 +#: order/templates/order/order_base.html:326 msgid "Link Barcode to Purchase Order" msgstr "" @@ -5662,11 +5572,11 @@ 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:529 -#: templates/js/translated/build.js:1626 +#: templates/js/translated/build.js:1629 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1236 -#: templates/js/translated/return_order.js:506 -#: templates/js/translated/sales_order.js:1109 +#: templates/js/translated/return_order.js:505 +#: templates/js/translated/sales_order.js:1145 #: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -5708,15 +5618,6 @@ msgstr "" msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/po_sidebar.html:5 -#: order/templates/order/return_order_detail.html:18 -#: order/templates/order/so_sidebar.html:5 -#: report/templates/report/inventree_po_report_base.html:22 -#: report/templates/report/inventree_return_order_report_base.html:19 -#: report/templates/report/inventree_so_report_base.html:22 -msgid "Line Items" -msgstr "" - #: order/templates/order/po_sidebar.html:7 msgid "Received Stock" msgstr "" @@ -5729,7 +5630,7 @@ msgstr "" #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 #: templates/js/translated/purchase_order.js:414 -#: templates/js/translated/return_order.js:459 +#: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" msgstr "" @@ -5778,30 +5679,30 @@ msgid "Print packing list" msgstr "" #: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:151 -#: templates/js/translated/return_order.js:309 -#: templates/js/translated/sales_order.js:797 +#: order/templates/order/sales_order_base.html:155 +#: 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:235 +#: order/templates/order/sales_order_base.html:239 #: 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:1072 -#: templates/js/translated/purchase_order.js:1753 -#: templates/js/translated/return_order.js:381 -#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/part.js:1073 +#: templates/js/translated/purchase_order.js:1752 +#: 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:263 +#: order/templates/order/return_order_base.html:259 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:275 +#: order/templates/order/return_order_base.html:271 msgid "Link Barcode to Return Order" msgstr "" @@ -5819,25 +5720,30 @@ msgid "Ship Items" msgstr "" #: order/templates/order/sales_order_base.html:92 -#: templates/js/translated/sales_order.js:484 +#: order/templates/order/sales_order_base.html:93 +msgid "Mark As Shipped" +msgstr "" + +#: order/templates/order/sales_order_base.html:96 +#: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:131 +#: order/templates/order/sales_order_base.html:135 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:169 +#: order/templates/order/sales_order_base.html:173 #: 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:312 +#: order/templates/order/sales_order_base.html:321 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:324 +#: order/templates/order/sales_order_base.html:333 msgid "Link Barcode to Sales Order" msgstr "" @@ -5881,34 +5787,34 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:39 part/admin.py:404 part/models.py:3921 part/stocktake.py:218 -#: stock/admin.py:153 +#: part/admin.py:39 part/admin.py:398 part/models.py:3944 part/stocktake.py:219 +#: stock/admin.py:152 msgid "Part ID" msgstr "ID dílu" -#: part/admin.py:41 part/admin.py:411 part/models.py:3922 part/stocktake.py:219 -#: stock/admin.py:157 +#: part/admin.py:41 part/admin.py:405 part/models.py:3945 part/stocktake.py:220 +#: stock/admin.py:156 msgid "Part Name" msgstr "Název dílu" -#: part/admin.py:45 part/stocktake.py:220 +#: part/admin.py:45 part/stocktake.py:221 msgid "Part Description" msgstr "Popis dílu" -#: part/admin.py:48 part/models.py:904 part/templates/part/part_base.html:269 -#: report/templates/report/inventree_slr_report.html:103 -#: templates/js/translated/part.js:1226 templates/js/translated/part.js:2341 -#: templates/js/translated/stock.js:2035 +#: part/admin.py:48 part/models.py:940 part/templates/part/part_base.html:269 +#: report/templates/report/inventree_stock_location_report.html:103 +#: templates/js/translated/part.js:1227 templates/js/translated/part.js:2341 +#: templates/js/translated/stock.js:2036 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:913 part/templates/part/part_base.html:277 -#: report/models.py:195 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:949 part/templates/part/part_base.html:277 +#: report/models.py:162 templates/js/translated/part.js:1232 #: templates/js/translated/part.js:2347 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:317 part/models.py:886 +#: part/admin.py:53 part/admin.py:319 part/models.py:922 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5917,15 +5823,15 @@ msgstr "" msgid "Part Image" msgstr "" -#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 +#: part/admin.py:63 part/admin.py:302 part/stocktake.py:222 msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 +#: part/admin.py:67 part/admin.py:304 part/stocktake.py:223 msgid "Category Name" msgstr "" -#: part/admin.py:71 part/admin.py:314 +#: part/admin.py:71 part/admin.py:316 msgid "Default Location ID" msgstr "" @@ -5933,11 +5839,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:872 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:908 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1000 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1036 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5945,36 +5851,36 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:231 -#: templates/js/translated/part.js:714 templates/js/translated/part.js:2152 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:235 +#: templates/js/translated/part.js:715 templates/js/translated/part.js:2153 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3080 part/models.py:3094 -#: templates/js/translated/part.js:969 +#: part/admin.py:155 part/models.py:3088 part/models.py:3102 +#: templates/js/translated/part.js:970 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3087 part/models.py:3101 -#: templates/js/translated/part.js:979 +#: part/admin.py:158 part/models.py:3095 part/models.py:3109 +#: templates/js/translated/part.js:980 msgid "Maximum Cost" msgstr "" -#: part/admin.py:306 part/admin.py:393 stock/admin.py:58 stock/admin.py:211 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 msgid "Parent ID" msgstr "" -#: part/admin.py:310 part/admin.py:400 stock/admin.py:62 +#: part/admin.py:312 part/admin.py:394 stock/admin.py:61 msgid "Parent Name" msgstr "" -#: part/admin.py:318 part/templates/part/category.html:88 +#: part/admin.py:320 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:323 part/models.py:391 part/serializers.py:117 -#: part/serializers.py:272 part/serializers.py:391 +#: part/admin.py:325 part/models.py:396 part/serializers.py:116 +#: part/serializers.py:259 part/serializers.py:378 #: 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/templates/part/category_sidebar.html:9 @@ -5985,125 +5891,129 @@ msgstr "" msgid "Parts" msgstr "Díly" -#: part/admin.py:384 +#: part/admin.py:378 msgid "BOM Level" msgstr "" -#: part/admin.py:387 +#: part/admin.py:381 msgid "BOM Item ID" msgstr "" -#: part/admin.py:397 +#: part/admin.py:391 msgid "Parent IPN" msgstr "" -#: part/admin.py:408 part/models.py:3923 +#: part/admin.py:402 part/models.py:3946 msgid "Part IPN" msgstr "IPN dílu" -#: part/admin.py:421 part/serializers.py:1261 +#: part/admin.py:415 part/serializers.py:1266 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:426 part/serializers.py:1276 +#: part/admin.py:420 part/serializers.py:1281 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:119 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:121 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:138 stock/api.py:284 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:138 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:156 stock/api.py:302 +#: part/api.py:141 stock/api.py:330 msgid "Cascade" msgstr "" -#: part/api.py:158 +#: part/api.py:143 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:178 +#: part/api.py:163 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:180 +#: part/api.py:165 msgid "Filter by parent category" msgstr "" -#: part/api.py:213 +#: part/api.py:198 msgid "Exclude Tree" msgstr "" -#: part/api.py:215 +#: part/api.py:200 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:461 +#: part/api.py:433 msgid "Has Results" msgstr "" -#: part/api.py:628 +#: part/api.py:600 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:646 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:662 +#: part/api.py:634 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:746 +#: part/api.py:718 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:893 +#: part/api.py:865 msgid "Valid" msgstr "" -#: part/api.py:894 +#: part/api.py:866 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:900 +#: part/api.py:872 msgid "This option must be selected" msgstr "" -#: part/api.py:1561 part/models.py:896 part/models.py:3386 part/models.py:3866 -#: part/serializers.py:406 part/serializers.py:1117 -#: part/templates/part/part_base.html:260 stock/api.py:745 +#: part/api.py:1089 +msgid "BOM Valid" +msgstr "" + +#: part/api.py:1492 part/models.py:932 part/models.py:3374 part/models.py:3889 +#: part/serializers.py:393 part/serializers.py:1122 +#: part/templates/part/part_base.html:260 stock/api.py:775 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2377 msgid "Category" msgstr "" -#: part/api.py:1849 +#: part/api.py:1780 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:101 part/models.py:939 +#: part/bom.py:170 part/models.py:104 part/models.py:975 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:822 +#: part/bom.py:171 part/serializers.py:825 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6112,1040 +6022,1058 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:82 part/models.py:3867 part/templates/part/category.html:16 +#: part/models.py:85 part/models.py:3890 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategorie dílu" -#: part/models.py:83 part/templates/part/category.html:136 +#: part/models.py:86 part/templates/part/category.html:136 #: 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:102 +#: part/models.py:105 msgid "Default location for parts in this category" msgstr "Výchozí umístění dílů v této kategorii" -#: part/models.py:107 stock/models.py:165 templates/js/translated/part.js:2810 +#: part/models.py:110 stock/models.py:174 templates/js/translated/part.js:2810 #: templates/js/translated/stock.js:2772 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:109 +#: part/models.py:112 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:118 +#: part/models.py:121 msgid "Default keywords" msgstr "" -#: part/models.py:119 +#: part/models.py:122 msgid "Default keywords for parts in this category" msgstr "Výchozí klíčová slova pro díly v této kategorii" -#: part/models.py:125 stock/models.py:89 stock/models.py:148 +#: part/models.py:128 stock/models.py:86 stock/models.py:157 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:126 stock/models.py:149 +#: part/models.py:129 stock/models.py:158 msgid "Icon (optional)" msgstr "" -#: part/models.py:148 +#: part/models.py:151 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:484 +#: part/models.py:485 +msgid "Cannot delete this part as it is still active" +msgstr "" + +#: part/models.py:490 +msgid "Cannot delete this part as it is used in an assembly" +msgstr "" + +#: part/models.py:528 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:532 part/models.py:539 +#: part/models.py:576 part/models.py:583 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:551 +#: part/models.py:595 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:616 +#: part/models.py:658 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:696 +#: part/models.py:736 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:801 +#: part/models.py:837 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 +#: part/models.py:847 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:826 +#: part/models.py:862 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:855 part/models.py:3922 +#: part/models.py:891 part/models.py:3945 msgid "Part name" msgstr "Název dílu" -#: part/models.py:860 +#: part/models.py:896 msgid "Is Template" msgstr "" -#: part/models.py:861 +#: part/models.py:897 msgid "Is this part a template part?" msgstr "" -#: part/models.py:871 +#: part/models.py:907 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:879 +#: part/models.py:915 msgid "Part description (optional)" msgstr "" -#: part/models.py:887 +#: part/models.py:923 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:897 +#: part/models.py:933 msgid "Part category" msgstr "Kategorie dílu" -#: part/models.py:905 +#: part/models.py:941 msgid "Internal Part Number" msgstr "Interní číslo dílu" -#: part/models.py:912 +#: part/models.py:948 msgid "Part revision or version number" msgstr "" -#: part/models.py:937 +#: part/models.py:973 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:983 part/templates/part/part_base.html:376 +#: part/models.py:1019 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:984 +#: part/models.py:1020 msgid "Default supplier part" msgstr "" -#: part/models.py:991 +#: part/models.py:1027 msgid "Default Expiry" msgstr "" -#: part/models.py:992 +#: part/models.py:1028 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1001 +#: part/models.py:1037 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1010 +#: part/models.py:1046 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1017 +#: part/models.py:1053 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1023 +#: part/models.py:1059 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1029 +#: part/models.py:1065 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1035 +#: part/models.py:1071 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1041 +#: part/models.py:1077 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1045 +#: part/models.py:1081 msgid "Is this part active?" msgstr "" -#: part/models.py:1051 +#: part/models.py:1087 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1057 +#: part/models.py:1093 msgid "BOM checksum" msgstr "" -#: part/models.py:1058 +#: part/models.py:1094 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1066 +#: part/models.py:1102 msgid "BOM checked by" msgstr "" -#: part/models.py:1071 +#: part/models.py:1107 msgid "BOM checked date" msgstr "" -#: part/models.py:1087 +#: part/models.py:1123 msgid "Creation User" msgstr "" -#: part/models.py:1097 +#: part/models.py:1133 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1102 part/templates/part/part_base.html:339 +#: part/models.py:1138 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2471 msgid "Last Stocktake" msgstr "" -#: part/models.py:1975 +#: part/models.py:2011 msgid "Sell multiple" msgstr "" -#: part/models.py:2994 +#: part/models.py:3002 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3010 +#: part/models.py:3018 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3011 +#: part/models.py:3019 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3017 +#: part/models.py:3025 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3026 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3024 +#: part/models.py:3032 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3025 +#: part/models.py:3033 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3031 +#: part/models.py:3039 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3032 +#: part/models.py:3040 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3038 +#: part/models.py:3046 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3039 +#: part/models.py:3047 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3045 +#: part/models.py:3053 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3046 +#: part/models.py:3054 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3052 +#: part/models.py:3060 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3053 +#: part/models.py:3061 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3059 +#: part/models.py:3067 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3060 +#: part/models.py:3068 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3066 +#: part/models.py:3074 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3067 +#: part/models.py:3075 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3073 +#: part/models.py:3081 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3074 +#: part/models.py:3082 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3081 +#: part/models.py:3089 msgid "Override minimum cost" msgstr "" -#: part/models.py:3088 +#: part/models.py:3096 msgid "Override maximum cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3103 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3110 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3108 +#: part/models.py:3116 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3109 +#: part/models.py:3117 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3115 +#: part/models.py:3123 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3116 +#: part/models.py:3124 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3122 +#: part/models.py:3130 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3123 +#: part/models.py:3131 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3129 +#: part/models.py:3137 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3130 +#: part/models.py:3138 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3149 +#: part/models.py:3157 msgid "Part for stocktake" msgstr "" -#: part/models.py:3154 +#: part/models.py:3162 msgid "Item Count" msgstr "" -#: part/models.py:3155 +#: part/models.py:3163 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3163 +#: part/models.py:3171 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3167 part/models.py:3250 +#: part/models.py:3175 part/models.py:3258 #: part/templates/part/part_scheduling.html:13 -#: report/templates/report/inventree_test_report_base.html:106 +#: 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:1085 templates/js/translated/pricing.js:826 +#: templates/js/translated/part.js:1086 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1732 +#: templates/js/translated/purchase_order.js:1731 #: templates/js/translated/stock.js:2821 msgid "Date" msgstr "" -#: part/models.py:3168 +#: part/models.py:3176 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3176 +#: part/models.py:3184 msgid "Additional notes" msgstr "" -#: part/models.py:3186 +#: part/models.py:3194 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3192 +#: part/models.py:3200 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3193 +#: part/models.py:3201 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3199 +#: part/models.py:3207 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3200 +#: part/models.py:3208 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3256 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3264 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3257 +#: part/models.py:3265 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3262 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3270 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3263 +#: part/models.py:3271 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3273 +#: part/models.py:3281 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3435 +#: part/models.py:3423 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3446 +#: part/models.py:3444 part/models.py:3608 +msgid "Choices must be unique" +msgstr "" + +#: part/models.py:3455 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3457 +#: part/models.py:3466 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3474 templates/js/translated/part.js:2879 +#: part/models.py:3483 templates/js/translated/part.js:2880 msgid "Test Name" msgstr "" -#: part/models.py:3475 +#: part/models.py:3484 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3481 +#: part/models.py:3490 msgid "Test Key" msgstr "" -#: part/models.py:3482 +#: part/models.py:3491 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3489 +#: part/models.py:3498 msgid "Test Description" msgstr "" -#: part/models.py:3490 +#: part/models.py:3499 msgid "Enter description for this test" msgstr "" -#: part/models.py:3494 +#: part/models.py:3503 report/models.py:209 +#: templates/js/translated/part.js:2901 +#: templates/js/translated/table_filters.js:481 +msgid "Enabled" +msgstr "" + +#: part/models.py:3503 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3499 templates/js/translated/part.js:2908 +#: part/models.py:3508 templates/js/translated/part.js:2909 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3500 +#: part/models.py:3509 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3505 templates/js/translated/part.js:2916 +#: part/models.py:3514 templates/js/translated/part.js:2917 msgid "Requires Value" msgstr "" -#: part/models.py:3506 +#: part/models.py:3515 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3511 templates/js/translated/part.js:2923 +#: part/models.py:3520 templates/js/translated/part.js:2924 msgid "Requires Attachment" msgstr "" -#: part/models.py:3513 +#: part/models.py:3522 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3560 +#: part/models.py:3528 part/models.py:3667 templates/js/translated/part.js:1637 +msgid "Choices" +msgstr "" + +#: part/models.py:3529 +msgid "Valid choices for this test (comma-separated)" +msgstr "" + +#: part/models.py:3583 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3565 +#: part/models.py:3588 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3585 -msgid "Choices must be unique" -msgstr "" - -#: part/models.py:3602 +#: part/models.py:3625 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3617 +#: part/models.py:3640 msgid "Parameter Name" msgstr "" -#: part/models.py:3624 +#: part/models.py:3647 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3632 +#: part/models.py:3655 msgid "Parameter description" msgstr "" -#: part/models.py:3638 templates/js/translated/part.js:1627 +#: part/models.py:3661 templates/js/translated/part.js:1628 #: templates/js/translated/table_filters.js:825 msgid "Checkbox" msgstr "" -#: part/models.py:3639 +#: part/models.py:3662 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3644 templates/js/translated/part.js:1636 -msgid "Choices" -msgstr "" - -#: part/models.py:3645 +#: part/models.py:3668 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3722 +#: part/models.py:3745 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3765 +#: part/models.py:3788 msgid "Parent Part" msgstr "" -#: part/models.py:3773 part/models.py:3874 part/models.py:3875 +#: part/models.py:3796 part/models.py:3897 part/models.py:3898 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3778 +#: part/models.py:3801 msgid "Data" msgstr "" -#: part/models.py:3779 +#: part/models.py:3802 msgid "Parameter Value" msgstr "" -#: part/models.py:3881 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3904 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3882 +#: part/models.py:3905 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3920 +#: part/models.py:3943 msgid "Part ID or part name" msgstr "ID dílu nebo název dílu" -#: part/models.py:3921 +#: part/models.py:3944 msgid "Unique part ID value" msgstr "Jedinečná hodnota ID dílu" -#: part/models.py:3923 +#: part/models.py:3946 msgid "Part IPN value" msgstr "Hodnota IPN dílu" -#: part/models.py:3924 +#: part/models.py:3947 msgid "Level" msgstr "" -#: part/models.py:3924 +#: part/models.py:3947 msgid "BOM level" msgstr "" -#: part/models.py:4014 +#: part/models.py:4037 msgid "Select parent part" msgstr "Vyberte nadřazený díl" -#: part/models.py:4024 +#: part/models.py:4047 msgid "Sub part" msgstr "" -#: part/models.py:4025 +#: part/models.py:4048 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4036 +#: part/models.py:4059 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4042 +#: part/models.py:4065 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4048 +#: part/models.py:4071 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4055 part/templates/part/upload_bom.html:55 +#: part/models.py:4078 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4056 +#: part/models.py:4079 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4063 +#: part/models.py:4086 msgid "BOM item reference" msgstr "" -#: part/models.py:4071 +#: part/models.py:4094 msgid "BOM item notes" msgstr "" -#: part/models.py:4077 +#: part/models.py:4100 msgid "Checksum" msgstr "" -#: part/models.py:4078 +#: part/models.py:4101 msgid "BOM line checksum" msgstr "" -#: part/models.py:4083 templates/js/translated/table_filters.js:174 +#: part/models.py:4106 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4084 +#: part/models.py:4107 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4089 part/templates/part/upload_bom.html:57 +#: part/models.py:4112 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:4090 +#: part/models.py:4113 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4095 part/templates/part/upload_bom.html:56 +#: part/models.py:4118 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:4096 +#: part/models.py:4119 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4181 stock/models.py:647 +#: part/models.py:4204 stock/models.py:662 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4191 part/models.py:4193 +#: part/models.py:4214 part/models.py:4216 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4333 +#: part/models.py:4354 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4354 +#: part/models.py:4375 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4367 +#: part/models.py:4388 msgid "Parent BOM item" msgstr "" -#: part/models.py:4375 +#: part/models.py:4396 msgid "Substitute part" msgstr "" -#: part/models.py:4391 +#: part/models.py:4412 msgid "Part 1" msgstr "" -#: part/models.py:4399 +#: part/models.py:4420 msgid "Part 2" msgstr "" -#: part/models.py:4400 +#: part/models.py:4421 msgid "Select Related Part" msgstr "" -#: part/models.py:4419 +#: part/models.py:4440 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4424 +#: part/models.py:4445 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:119 part/serializers.py:141 +#: part/serializers.py:118 part/serializers.py:140 #: part/templates/part/category.html:122 part/templates/part/category.html:207 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:185 +#: part/serializers.py:172 msgid "Results" msgstr "" -#: part/serializers.py:186 +#: part/serializers.py:173 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:210 part/serializers.py:228 stock/serializers.py:406 +#: part/serializers.py:197 part/serializers.py:215 stock/serializers.py:562 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:273 +#: part/serializers.py:260 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:397 +#: part/serializers.py:384 msgid "No parts selected" msgstr "" -#: part/serializers.py:407 +#: part/serializers.py:394 msgid "Select category" msgstr "" -#: part/serializers.py:437 +#: part/serializers.py:429 msgid "Original Part" msgstr "" -#: part/serializers.py:438 +#: part/serializers.py:430 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:443 +#: part/serializers.py:435 msgid "Copy Image" msgstr "" -#: part/serializers.py:444 +#: part/serializers.py:436 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:450 part/templates/part/detail.html:277 +#: part/serializers.py:442 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:451 +#: part/serializers.py:443 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:449 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:450 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:456 msgid "Copy Notes" msgstr "" -#: part/serializers.py:465 +#: part/serializers.py:457 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:475 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:477 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:484 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:488 +#: part/serializers.py:485 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:500 +#: part/serializers.py:502 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:516 +#: part/serializers.py:518 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:526 +#: part/serializers.py:528 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:533 +#: part/serializers.py:535 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:542 +#: part/serializers.py:544 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:553 +#: part/serializers.py:555 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:560 +#: part/serializers.py:562 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:823 +#: part/serializers.py:826 msgid "External Stock" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:828 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:828 +#: part/serializers.py:831 msgid "Variant Stock" msgstr "" -#: part/serializers.py:856 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:471 +#: part/serializers.py:861 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:472 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:862 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:863 templates/js/translated/part.js:102 +#: part/serializers.py:868 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:864 +#: part/serializers.py:869 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:870 +#: part/serializers.py:875 msgid "Supplier Information" msgstr "" -#: part/serializers.py:871 +#: part/serializers.py:876 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:884 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:885 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:885 +#: part/serializers.py:890 msgid "Existing Image" msgstr "" -#: part/serializers.py:886 +#: part/serializers.py:891 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:908 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1109 +#: part/serializers.py:1114 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1119 +#: part/serializers.py:1124 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1129 +#: part/serializers.py:1134 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1135 +#: part/serializers.py:1140 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1141 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1141 +#: part/serializers.py:1146 msgid "Generate Report" msgstr "" -#: part/serializers.py:1142 +#: part/serializers.py:1147 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1147 +#: part/serializers.py:1152 msgid "Update Parts" msgstr "Aktualizovat díly" -#: part/serializers.py:1148 +#: part/serializers.py:1153 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1156 +#: part/serializers.py:1161 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1262 +#: part/serializers.py:1267 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1269 +#: part/serializers.py:1274 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1277 +#: part/serializers.py:1282 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1284 +#: part/serializers.py:1289 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1313 +#: part/serializers.py:1318 msgid "Update" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1319 msgid "Update pricing for this part" msgstr "Aktualizovat cenu pro díl" -#: part/serializers.py:1337 +#: part/serializers.py:1342 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1349 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1352 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1714 +#: part/serializers.py:1719 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1722 +#: part/serializers.py:1727 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1723 +#: part/serializers.py:1728 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1728 +#: part/serializers.py:1733 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1729 +#: part/serializers.py:1734 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1734 +#: part/serializers.py:1739 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1735 +#: part/serializers.py:1740 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1740 +#: part/serializers.py:1745 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1741 +#: part/serializers.py:1746 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1775 +#: part/serializers.py:1780 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1776 +#: part/serializers.py:1781 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1806 +#: part/serializers.py:1811 msgid "No part column specified" msgstr "" -#: part/serializers.py:1850 +#: part/serializers.py:1855 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1853 +#: part/serializers.py:1858 msgid "No matching part found" msgstr "" -#: part/serializers.py:1856 +#: part/serializers.py:1861 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1865 +#: part/serializers.py:1870 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1873 +#: part/serializers.py:1878 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1894 +#: part/serializers.py:1899 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:224 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 -#: templates/js/translated/purchase_order.js:2085 +#: part/stocktake.py:225 templates/js/translated/part.js:1067 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 +#: templates/js/translated/purchase_order.js:2084 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:226 +#: part/stocktake.py:227 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:284 +#: part/stocktake.py:285 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:285 +#: part/stocktake.py:286 msgid "A new stocktake report is available for download" msgstr "" @@ -7279,9 +7207,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:251 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2215 users/models.py:204 +#: templates/js/translated/stock.js:2216 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7379,15 +7307,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:659 +#: part/templates/part/detail.html:657 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:667 +#: part/templates/part/detail.html:665 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:752 +#: part/templates/part/detail.html:750 msgid "Add Test Result Template" msgstr "" @@ -7446,7 +7374,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 +#: stock/templates/stock/location.html:74 templates/js/translated/label.js:143 msgid "Print Label" msgstr "" @@ -7517,7 +7445,7 @@ msgid "Part is virtual (not a physical part)" msgstr "" #: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:682 +#: part/templates/part/part_base.html:681 msgid "Show Part Details" msgstr "" @@ -7540,7 +7468,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:322 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1264 templates/js/translated/part.js:2444 +#: templates/js/translated/part.js:1265 templates/js/translated/part.js:2444 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -7563,19 +7491,19 @@ msgstr "" msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:512 +#: part/templates/part/part_base.html:511 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:529 +#: part/templates/part/part_base.html:528 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:580 +#: part/templates/part/part_base.html:579 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:676 +#: part/templates/part/part_base.html:675 msgid "Hide Part Details" msgstr "" @@ -7633,9 +7561,9 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1242 templates/js/translated/part.js:2145 +#: templates/js/translated/part.js:1243 templates/js/translated/part.js:2146 #: templates/js/translated/part.js:2392 templates/js/translated/stock.js:1059 -#: templates/js/translated/stock.js:2069 templates/navbar.html:31 +#: templates/js/translated/stock.js:2070 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -7677,11 +7605,11 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:247 +#: part/templates/part/prices.html:28 stock/admin.py:251 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2245 +#: templates/js/translated/stock.js:2246 msgid "Last Updated" msgstr "" @@ -7753,9 +7681,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:221 -#: templates/js/translated/part.js:704 templates/js/translated/part.js:2140 -#: templates/js/translated/part.js:2142 +#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:2141 +#: templates/js/translated/part.js:2143 msgid "No Stock" msgstr "" @@ -7833,7 +7761,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:168 +#: plugin/api.py:170 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -7899,8 +7827,8 @@ msgstr "" msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2590 -#: templates/js/translated/sales_order.js:1917 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2589 +#: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" @@ -7994,20 +7922,20 @@ msgstr "" msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:39 +#: plugin/base/label/label.py:39 templates/js/translated/label.js:155 msgid "Label printing failed" msgstr "" -#: plugin/base/label/mixins.py:63 +#: plugin/base/label/mixins.py:56 msgid "Error rendering label to PDF" msgstr "" -#: plugin/base/label/mixins.py:76 +#: plugin/base/label/mixins.py:70 msgid "Error rendering label to HTML" msgstr "" -#: plugin/base/label/mixins.py:111 -msgid "Error rendering label to PNG" +#: plugin/base/label/mixins.py:151 +msgid "No items provided to print" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:25 @@ -8021,7 +7949,7 @@ msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 -#: plugin/builtin/labels/inventree_label.py:23 +#: plugin/builtin/labels/inventree_label.py:22 #: plugin/builtin/labels/inventree_machine.py:64 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -8075,19 +8003,19 @@ msgstr "" msgid "Default currency exchange integration" msgstr "" -#: plugin/builtin/labels/inventree_label.py:20 +#: plugin/builtin/labels/inventree_label.py:19 msgid "InvenTree PDF label printer" msgstr "" -#: plugin/builtin/labels/inventree_label.py:21 +#: plugin/builtin/labels/inventree_label.py:20 msgid "Provides native support for printing PDF labels" msgstr "" -#: plugin/builtin/labels/inventree_label.py:29 +#: plugin/builtin/labels/inventree_label.py:28 msgid "Debug mode" msgstr "" -#: plugin/builtin/labels/inventree_label.py:30 +#: plugin/builtin/labels/inventree_label.py:29 msgid "Enable debug mode - returns raw HTML instead of PDF" msgstr "" @@ -8099,11 +8027,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:150 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:167 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8127,7 +8055,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:209 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:308 msgid "Landscape" msgstr "" @@ -8143,11 +8071,11 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:94 +#: plugin/builtin/labels/label_sheet.py:99 msgid "Label is too large for page size" msgstr "" -#: plugin/builtin/labels/label_sheet.py:128 +#: plugin/builtin/labels/label_sheet.py:133 msgid "No labels were generated" msgstr "" @@ -8240,61 +8168,62 @@ msgstr "" msgid "Uninstalled plugin successfully" msgstr "" -#: plugin/models.py:30 +#: plugin/models.py:36 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:31 +#: plugin/models.py:37 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:100 +#: plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: plugin/models.py:34 +#: plugin/models.py:44 msgid "Key of plugin" msgstr "" -#: plugin/models.py:42 +#: plugin/models.py:52 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:90 msgid "Package Name" msgstr "" -#: plugin/models.py:51 +#: plugin/models.py:61 msgid "Name of the installed package, if the plugin was installed via PIP" msgstr "" -#: plugin/models.py:56 +#: plugin/models.py:66 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:147 templates/js/translated/table_filters.js:370 +#: plugin/models.py:157 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:504 msgid "Installed" msgstr "" -#: plugin/models.py:156 +#: plugin/models.py:166 msgid "Sample plugin" msgstr "" -#: plugin/models.py:164 +#: plugin/models.py:174 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:172 +#: plugin/models.py:182 msgid "Package Plugin" msgstr "" -#: plugin/models.py:196 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:220 report/models.py:475 +#: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:243 +#: plugin/models.py:267 msgid "Method" msgstr "" @@ -8302,17 +8231,17 @@ msgstr "" msgid "No author found" msgstr "" -#: plugin/registry.py:588 +#: plugin/registry.py:598 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:591 +#: plugin/registry.py:601 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:593 +#: plugin/registry.py:603 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -8395,279 +8324,359 @@ msgstr "" msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:156 +#: plugin/serializers.py:161 msgid "Full reload" msgstr "" -#: plugin/serializers.py:157 +#: plugin/serializers.py:162 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:163 +#: plugin/serializers.py:168 msgid "Force reload" msgstr "" -#: plugin/serializers.py:165 +#: plugin/serializers.py:170 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:177 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:178 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:195 +#: plugin/serializers.py:205 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:196 +#: plugin/serializers.py:206 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:219 +#: plugin/serializers.py:226 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:220 +#: plugin/serializers.py:227 msgid "Delete the plugin configuration from the database" msgstr "" -#: report/api.py:158 +#: report/api.py:88 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:197 report/api.py:234 +#: report/api.py:103 report/models.py:439 report/serializers.py:98 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1747 +#: templates/js/translated/return_order.js:353 +#: templates/js/translated/sales_order.js:887 +#: templates/js/translated/sales_order.js:1047 +msgid "Items" +msgstr "" + +#: report/api.py:180 +msgid "Plugin not found" +msgstr "" + +#: report/api.py:182 +msgid "Plugin is not active" +msgstr "" + +#: report/api.py:184 +msgid "Plugin does not support label printing" +msgstr "" + +#: report/api.py:233 +msgid "Invalid label dimensions" +msgstr "" + +#: report/api.py:248 report/api.py:329 +msgid "No valid items provided to template" +msgstr "" + +#: report/api.py:283 +msgid "Error printing label" +msgstr "" + +#: report/api.py:375 report/api.py:411 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:319 -msgid "Test report" -msgstr "" - -#: report/helpers.py:15 +#: report/helpers.py:43 msgid "A4" msgstr "" -#: report/helpers.py:16 +#: report/helpers.py:44 msgid "A3" msgstr "" -#: report/helpers.py:17 +#: report/helpers.py:45 msgid "Legal" msgstr "" -#: report/helpers.py:18 +#: report/helpers.py:46 msgid "Letter" msgstr "" -#: report/models.py:177 +#: report/models.py:119 +msgid "Template file with this name already exists" +msgstr "" + +#: report/models.py:151 msgid "Template name" msgstr "" -#: report/models.py:183 -msgid "Report template file" +#: report/models.py:157 +msgid "Template description" msgstr "" -#: report/models.py:190 -msgid "Report template description" +#: report/models.py:163 +msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:196 -msgid "Report revision number (auto-increments)" +#: report/models.py:203 +msgid "Filename Pattern" msgstr "" #: report/models.py:204 +msgid "Pattern for generating filenames" +msgstr "" + +#: report/models.py:209 +msgid "Template is enabled" +msgstr "" + +#: report/models.py:215 +msgid "Target model type for template" +msgstr "" + +#: report/models.py:235 +msgid "Filters" +msgstr "" + +#: report/models.py:236 +msgid "Template query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:295 report/models.py:362 +msgid "Template file" +msgstr "" + +#: report/models.py:303 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:210 +#: report/models.py:309 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:318 -msgid "Pattern for generating report filenames" +#: report/models.py:368 +msgid "Width [mm]" msgstr "" -#: report/models.py:325 -msgid "Report template is enabled" +#: report/models.py:369 +msgid "Label width, specified in mm" msgstr "" -#: report/models.py:347 -msgid "StockItem query filters (comma-separated list of key=value pairs)" +#: report/models.py:375 +msgid "Height [mm]" msgstr "" -#: report/models.py:354 -msgid "Include Installed Tests" +#: report/models.py:376 +msgid "Label height, specified in mm" msgstr "" -#: report/models.py:356 -msgid "Include test results for stock items installed inside assembled item" +#: report/models.py:439 +msgid "Number of items to process" msgstr "" -#: report/models.py:424 -msgid "Build Filters" +#: report/models.py:445 +msgid "Report generation is complete" msgstr "" -#: report/models.py:425 -msgid "Build query filters (comma-separated list of key=value pairs" +#: report/models.py:449 templates/js/translated/build.js:2177 +msgid "Progress" msgstr "" -#: report/models.py:464 -msgid "Part Filters" +#: report/models.py:449 +msgid "Report generation progress" msgstr "" -#: report/models.py:465 -msgid "Part query filters (comma-separated list of key=value pairs" +#: report/models.py:457 +msgid "Report Template" msgstr "" -#: report/models.py:497 -msgid "Purchase order query filters" +#: report/models.py:464 report/models.py:487 +msgid "Output File" msgstr "" -#: report/models.py:533 -msgid "Sales order query filters" +#: report/models.py:465 report/models.py:488 +msgid "Generated output file" msgstr "" -#: report/models.py:569 -msgid "Return order query filters" +#: report/models.py:476 +msgid "Label output plugin" msgstr "" -#: report/models.py:641 -msgid "Snippet file with this name already exists" +#: report/models.py:480 +msgid "Label Template" msgstr "" -#: report/models.py:648 +#: report/models.py:503 msgid "Snippet" msgstr "" -#: report/models.py:649 +#: report/models.py:504 msgid "Report snippet file" msgstr "" -#: report/models.py:656 +#: report/models.py:511 msgid "Snippet file description" msgstr "" -#: report/models.py:714 -msgid "Asset file with this name already exists" -msgstr "" - -#: report/models.py:722 +#: report/models.py:529 msgid "Asset" msgstr "" -#: report/models.py:723 +#: report/models.py:530 msgid "Report asset file" msgstr "" -#: report/models.py:730 +#: report/models.py:537 msgid "Asset file description" msgstr "" -#: report/models.py:752 -msgid "stock location query filters (comma-separated list of key=value pairs)" +#: report/serializers.py:91 +msgid "Select report template" +msgstr "" + +#: report/serializers.py:99 report/serializers.py:149 +msgid "List of item primary keys to include in the report" +msgstr "" + +#: report/serializers.py:132 +msgid "Select label template" +msgstr "" + +#: report/serializers.py:140 +msgid "Printing Plugin" +msgstr "" + +#: report/serializers.py:141 +msgid "Select plugin to use for label printing" +msgstr "" + +#: report/templates/label/part_label.html:31 +#: report/templates/label/stockitem_qr.html:21 +#: report/templates/label/stocklocation_qr.html:20 +#: templates/allauth_2fa/setup.html:18 +msgid "QR Code" +msgstr "" + +#: report/templates/label/part_label_code128.html:31 +#: report/templates/label/stocklocation_qr_and_text.html:31 +#: templates/qr_code.html:7 +msgid "QR code" msgstr "" #: report/templates/report/inventree_bill_of_materials_report.html:133 msgid "Materials needed" msgstr "" -#: report/templates/report/inventree_build_order_base.html:146 +#: report/templates/report/inventree_build_order_report.html:146 msgid "Required For" msgstr "" -#: report/templates/report/inventree_po_report_base.html:15 +#: report/templates/report/inventree_purchase_order_report.html:15 msgid "Supplier was deleted" msgstr "" -#: report/templates/report/inventree_po_report_base.html:30 -#: report/templates/report/inventree_so_report_base.html:30 +#: 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/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2116 -#: templates/js/translated/sales_order.js:1837 +#: templates/js/translated/purchase_order.js:2115 +#: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" -#: report/templates/report/inventree_po_report_base.html:55 -#: report/templates/report/inventree_return_order_report_base.html:48 -#: report/templates/report/inventree_so_report_base.html:55 +#: report/templates/report/inventree_purchase_order_report.html:55 +#: report/templates/report/inventree_return_order_report.html:48 +#: report/templates/report/inventree_sales_order_report.html:55 msgid "Extra Line Items" msgstr "" -#: report/templates/report/inventree_po_report_base.html:72 -#: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:2018 -#: templates/js/translated/sales_order.js:1806 +#: report/templates/report/inventree_purchase_order_report.html:72 +#: report/templates/report/inventree_sales_order_report.html:72 +#: templates/js/translated/purchase_order.js:2017 +#: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" -#: report/templates/report/inventree_return_order_report_base.html:25 -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:809 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:519 templates/js/translated/build.js:1364 -#: templates/js/translated/build.js:2353 -#: templates/js/translated/model_renderers.js:224 -#: templates/js/translated/return_order.js:540 -#: templates/js/translated/return_order.js:724 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:824 +#: stock/serializers.py:149 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:519 templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:2355 +#: 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:1611 -#: templates/js/translated/sales_order.js:1696 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 #: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" -#: report/templates/report/inventree_slr_report.html:97 +#: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" -#: report/templates/report/inventree_test_report_base.html:21 +#: report/templates/report/inventree_test_report.html:21 msgid "Stock Item Test Report" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 +#: report/templates/report/inventree_test_report.html:97 msgid "Test Results" msgstr "" -#: report/templates/report/inventree_test_report_base.html:102 -#: templates/js/translated/stock.js:1492 +#: report/templates/report/inventree_test_report.html:102 +#: templates/js/translated/stock.js:1495 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2430 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2412 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:130 +#: report/templates/report/inventree_test_report.html:130 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:132 +#: report/templates/report/inventree_test_report.html:132 msgid "Fail" msgstr "" -#: report/templates/report/inventree_test_report_base.html:139 +#: report/templates/report/inventree_test_report.html:139 msgid "No result (required)" msgstr "" -#: report/templates/report/inventree_test_report_base.html:141 +#: report/templates/report/inventree_test_report.html:141 msgid "No result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:154 +#: report/templates/report/inventree_test_report.html:154 #: stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:162 templates/js/translated/stock.js:700 -#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3110 +#: report/templates/report/inventree_test_report.html:168 stock/admin.py:161 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3110 msgid "Serial" msgstr "" @@ -8687,617 +8696,793 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:52 stock/admin.py:172 +#: stock/admin.py:51 stock/admin.py:171 msgid "Location ID" msgstr "" -#: stock/admin.py:54 stock/admin.py:176 +#: stock/admin.py:53 stock/admin.py:175 msgid "Location Name" msgstr "" -#: stock/admin.py:64 stock/templates/stock/location.html:131 +#: stock/admin.py:63 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:149 +#: stock/admin.py:148 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:168 +#: stock/admin.py:167 msgid "Status Code" msgstr "" -#: stock/admin.py:180 +#: stock/admin.py:179 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:185 +#: stock/admin.py:184 +msgid "Supplier Part SKU" +msgstr "" + +#: stock/admin.py:189 msgid "Supplier ID" msgstr "" -#: stock/admin.py:191 +#: stock/admin.py:195 msgid "Supplier Name" msgstr "" -#: stock/admin.py:196 +#: stock/admin.py:200 msgid "Customer ID" msgstr "" -#: stock/admin.py:201 stock/models.py:789 +#: stock/admin.py:205 stock/models.py:804 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:206 +#: stock/admin.py:210 msgid "Build ID" msgstr "" -#: stock/admin.py:216 +#: stock/admin.py:220 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:221 +#: stock/admin.py:225 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:236 +#: stock/admin.py:240 msgid "Review Needed" msgstr "" -#: stock/admin.py:241 +#: stock/admin.py:245 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:256 stock/models.py:883 +#: stock/admin.py:260 stock/models.py:898 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2229 users/models.py:124 +#: templates/js/translated/stock.js:2230 users/models.py:124 msgid "Expiry Date" msgstr "" -#: stock/api.py:284 +#: stock/api.py:312 msgid "Filter by location depth" msgstr "" -#: stock/api.py:304 +#: stock/api.py:332 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:325 +#: stock/api.py:353 msgid "Parent Location" msgstr "" -#: stock/api.py:326 +#: stock/api.py:354 msgid "Filter by parent location" msgstr "" -#: stock/api.py:579 templates/js/translated/table_filters.js:427 +#: stock/api.py:609 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:767 +#: stock/api.py:797 msgid "Part Tree" msgstr "" -#: stock/api.py:797 +#: stock/api.py:827 msgid "Expiry date before" msgstr "" -#: stock/api.py:801 +#: stock/api.py:831 msgid "Expiry date after" msgstr "" -#: stock/api.py:804 stock/templates/stock/item_base.html:439 +#: stock/api.py:834 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:891 +#: stock/api.py:921 msgid "Quantity is required" msgstr "" -#: stock/api.py:897 +#: stock/api.py:927 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:928 +#: stock/api.py:958 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:938 +#: stock/api.py:968 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:969 +#: stock/api.py:999 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:63 +#: stock/models.py:60 msgid "Stock Location type" msgstr "" -#: stock/models.py:64 +#: stock/models.py:61 msgid "Stock Location types" msgstr "" -#: stock/models.py:90 +#: stock/models.py:87 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:771 +#: stock/models.py:124 stock/models.py:786 #: 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:179 +#: stock/models.py:125 stock/templates/stock/location.html:186 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:158 stock/models.py:932 +#: stock/models.py:167 stock/models.py:947 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:159 stock/models.py:933 +#: stock/models.py:168 stock/models.py:948 msgid "Select Owner" msgstr "" -#: stock/models.py:167 +#: stock/models.py:176 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:174 templates/js/translated/stock.js:2781 +#: stock/models.py:183 templates/js/translated/stock.js:2781 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:175 +#: stock/models.py:184 msgid "This is an external stock location" msgstr "" -#: stock/models.py:181 templates/js/translated/stock.js:2790 +#: stock/models.py:190 templates/js/translated/stock.js:2790 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:185 +#: stock/models.py:194 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:254 +#: stock/models.py:261 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:626 +#: stock/models.py:641 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:653 stock/serializers.py:290 +#: stock/models.py:668 stock/serializers.py:446 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:670 +#: stock/models.py:685 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:680 stock/models.py:693 +#: stock/models.py:695 stock/models.py:708 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:683 +#: stock/models.py:698 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:707 +#: stock/models.py:722 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:712 +#: stock/models.py:727 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:725 +#: stock/models.py:740 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:741 +#: stock/models.py:756 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:753 +#: stock/models.py:768 msgid "Base part" msgstr "" -#: stock/models.py:763 +#: stock/models.py:778 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:775 +#: stock/models.py:790 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:783 stock/serializers.py:1351 +#: stock/models.py:798 stock/serializers.py:1467 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:794 +#: stock/models.py:809 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:813 +#: stock/models.py:828 msgid "Serial number for this item" msgstr "" -#: stock/models.py:827 stock/serializers.py:1334 +#: stock/models.py:842 stock/serializers.py:1450 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:832 +#: stock/models.py:847 msgid "Stock Quantity" msgstr "" -#: stock/models.py:842 +#: stock/models.py:857 msgid "Source Build" msgstr "" -#: stock/models.py:845 +#: stock/models.py:860 msgid "Build for this stock item" msgstr "" -#: stock/models.py:852 stock/templates/stock/item_base.html:363 +#: stock/models.py:867 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:855 +#: stock/models.py:870 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:864 +#: stock/models.py:879 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:868 +#: stock/models.py:883 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:874 +#: stock/models.py:889 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:885 +#: stock/models.py:900 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:903 +#: stock/models.py:918 msgid "Delete on deplete" msgstr "" -#: stock/models.py:904 +#: stock/models.py:919 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:924 +#: stock/models.py:939 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:955 +#: stock/models.py:970 msgid "Converted to part" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1486 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1492 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1479 +#: stock/models.py:1500 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1485 +#: stock/models.py:1506 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1511 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1498 stock/serializers.py:529 +#: stock/models.py:1519 stock/serializers.py:660 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1595 +#: stock/models.py:1616 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1613 +#: stock/models.py:1634 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1617 +#: stock/models.py:1638 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1620 +#: stock/models.py:1641 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1623 +#: stock/models.py:1644 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1647 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1629 +#: stock/models.py:1650 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1636 stock/serializers.py:1240 +#: stock/models.py:1657 stock/serializers.py:1356 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1640 +#: stock/models.py:1661 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1648 +#: stock/models.py:1669 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1674 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1870 +#: stock/models.py:1901 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2333 +#: stock/models.py:2310 msgid "Entry notes" msgstr "" -#: stock/models.py:2398 +#: stock/models.py:2378 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2403 +#: stock/models.py:2383 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2388 +msgid "Invalid value for this test" +msgstr "" + +#: stock/models.py:2412 msgid "Test result" msgstr "" -#: stock/models.py:2437 +#: stock/models.py:2419 msgid "Test output value" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2427 msgid "Test result attachment" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2431 msgid "Test notes" msgstr "" -#: stock/models.py:2457 templates/js/translated/stock.js:1545 +#: stock/models.py:2439 templates/js/translated/stock.js:1548 msgid "Test station" msgstr "" -#: stock/models.py:2458 +#: stock/models.py:2440 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2464 +#: stock/models.py:2446 msgid "Started" msgstr "" -#: stock/models.py:2465 +#: stock/models.py:2447 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2471 +#: stock/models.py:2453 msgid "Finished" msgstr "" -#: stock/models.py:2472 +#: stock/models.py:2454 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:100 -msgid "Test template for this result" +#: stock/serializers.py:74 +msgid "Generated batch code" +msgstr "" + +#: stock/serializers.py:83 +msgid "Select build order" +msgstr "" + +#: stock/serializers.py:92 +msgid "Select stock item to generate batch code for" +msgstr "" + +#: stock/serializers.py:101 +msgid "Select location to generate batch code for" +msgstr "" + +#: stock/serializers.py:110 +msgid "Select part to generate batch code for" msgstr "" #: stock/serializers.py:119 +msgid "Select purchase order" +msgstr "" + +#: stock/serializers.py:126 +msgid "Enter quantity for batch code" +msgstr "" + +#: stock/serializers.py:149 +msgid "Generated serial number" +msgstr "" + +#: stock/serializers.py:158 +msgid "Select part to generate serial number for" +msgstr "" + +#: stock/serializers.py:166 +msgid "Quantity of serial numbers to generate" +msgstr "" + +#: stock/serializers.py:228 +msgid "Test template for this result" +msgstr "" + +#: stock/serializers.py:247 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:279 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:184 +#: stock/serializers.py:315 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:282 +#: stock/serializers.py:438 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:402 +#: stock/serializers.py:558 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:464 +#: stock/serializers.py:595 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:477 +#: stock/serializers.py:608 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:484 +#: stock/serializers.py:615 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:495 stock/serializers.py:1197 stock/serializers.py:1453 +#: stock/serializers.py:626 stock/serializers.py:1313 stock/serializers.py:1569 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:633 msgid "Optional note field" msgstr "" -#: stock/serializers.py:512 +#: stock/serializers.py:643 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:567 +#: stock/serializers.py:698 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:574 +#: stock/serializers.py:705 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:575 +#: stock/serializers.py:706 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:580 stock/serializers.py:660 stock/serializers.py:756 -#: stock/serializers.py:806 +#: stock/serializers.py:711 stock/serializers.py:791 stock/serializers.py:887 +#: stock/serializers.py:937 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:588 +#: stock/serializers.py:719 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:596 +#: stock/serializers.py:727 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:607 +#: stock/serializers.py:738 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:620 +#: stock/serializers.py:751 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:655 +#: stock/serializers.py:786 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:690 +#: stock/serializers.py:821 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:703 +#: stock/serializers.py:834 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:720 +#: stock/serializers.py:851 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:882 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:788 +#: stock/serializers.py:919 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:794 +#: stock/serializers.py:925 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:890 stock/serializers.py:953 +#: stock/serializers.py:1021 stock/serializers.py:1084 #: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:213 +#: stock/templates/stock/location.html:222 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1069 +#: stock/serializers.py:1185 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1073 +#: stock/serializers.py:1189 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1077 +#: stock/serializers.py:1193 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1101 +#: stock/serializers.py:1217 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1107 +#: stock/serializers.py:1223 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1115 +#: stock/serializers.py:1231 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1125 stock/serializers.py:1379 +#: stock/serializers.py:1241 stock/serializers.py:1495 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1204 +#: stock/serializers.py:1320 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1209 +#: stock/serializers.py:1325 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1210 +#: stock/serializers.py:1326 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1215 +#: stock/serializers.py:1331 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1216 +#: stock/serializers.py:1332 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1226 +#: stock/serializers.py:1342 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1293 +#: stock/serializers.py:1409 msgid "No Change" msgstr "" -#: stock/serializers.py:1322 +#: stock/serializers.py:1438 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1341 +#: stock/serializers.py:1457 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1369 +#: stock/serializers.py:1485 msgid "Stock transaction notes" msgstr "" +#: stock/status_codes.py:11 +msgid "OK" +msgstr "OK" + +#: stock/status_codes.py:12 +msgid "Attention needed" +msgstr "Vyžaduje pozornost" + +#: stock/status_codes.py:13 +msgid "Damaged" +msgstr "Poškozeno" + +#: stock/status_codes.py:14 +msgid "Destroyed" +msgstr "Zničeno" + +#: stock/status_codes.py:15 +msgid "Rejected" +msgstr "Odmítnuto" + +#: stock/status_codes.py:19 +msgid "Quarantined" +msgstr "V karanténě" + +#: stock/status_codes.py:40 +msgid "Legacy stock tracking entry" +msgstr "Původní položka sledování zásob" + +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +msgid "Stock item created" +msgstr "Položka zásob vytvořena" + +#: stock/status_codes.py:45 +msgid "Edited stock item" +msgstr "Položka zásob upravena" + +#: stock/status_codes.py:46 +msgid "Assigned serial number" +msgstr "Přiřazeno výrobní číslo" + +#: stock/status_codes.py:49 +msgid "Stock counted" +msgstr "Stav zásob sečten" + +#: stock/status_codes.py:50 +msgid "Stock manually added" +msgstr "Zásoba přidána ručně" + +#: stock/status_codes.py:51 +msgid "Stock manually removed" +msgstr "Zásoba odebrána ručně" + +#: stock/status_codes.py:54 +msgid "Location changed" +msgstr "Umístění změněno" + +#: stock/status_codes.py:55 +msgid "Stock updated" +msgstr "Stav zásob byl aktualizován" + +#: stock/status_codes.py:58 +msgid "Installed into assembly" +msgstr "Nainstalováno do sestavy" + +#: stock/status_codes.py:59 +msgid "Removed from assembly" +msgstr "Odstraněno ze sestavy" + +#: stock/status_codes.py:61 +msgid "Installed component item" +msgstr "Instalovaná položka komponenty" + +#: stock/status_codes.py:62 +msgid "Removed component item" +msgstr "Odstraněná komponenta" + +#: stock/status_codes.py:65 +msgid "Split from parent item" +msgstr "Rozdělit od nadřazené položky" + +#: stock/status_codes.py:66 +msgid "Split child item" +msgstr "Rozdělit podřazený předmět" + +#: stock/status_codes.py:69 templates/js/translated/stock.js:1858 +msgid "Merged stock items" +msgstr "Sloučené položky zásob" + +#: stock/status_codes.py:72 +msgid "Converted to variant" +msgstr "Převedeno na variantu" + +#: stock/status_codes.py:75 +msgid "Build order output created" +msgstr "Výstup objednávky byl vytvořen" + +#: stock/status_codes.py:76 +msgid "Build order output completed" +msgstr "Výstup objednávky sestavení dokončen" + +#: stock/status_codes.py:77 +msgid "Build order output rejected" +msgstr "Výstup objednávky sestavení byl odmítnut" + +#: stock/status_codes.py:78 templates/js/translated/stock.js:1764 +msgid "Consumed by build order" +msgstr "Spotřebováno podle objednávky" + +#: stock/status_codes.py:81 +msgid "Shipped against Sales Order" +msgstr "Odesláno v souladu se zákaznickou objednávkou" + +#: stock/status_codes.py:84 +msgid "Received against Purchase Order" +msgstr "Přijato proti objednávce" + +#: stock/status_codes.py:87 +msgid "Returned against Return Order" +msgstr "Vráceno proti vratce" + +#: stock/status_codes.py:90 templates/js/translated/table_filters.js:375 +msgid "Sent to customer" +msgstr "Odesláno zákazníkovi" + +#: stock/status_codes.py:91 +msgid "Returned from customer" +msgstr "Vráceno od zákazníka" + #: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" @@ -9319,7 +9504,7 @@ msgstr "" msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:286 +#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:276 msgid "Delete Test Data" msgstr "" @@ -9339,11 +9524,11 @@ msgstr "" msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:274 +#: stock/templates/stock/item.html:264 msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1698 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1701 msgid "Add Test Result" msgstr "" @@ -9366,17 +9551,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1821 +#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1824 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1806 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1815 msgid "Remove stock" msgstr "" @@ -9385,12 +9570,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1830 +#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1833 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1884 +#: templates/js/translated/stock.js:1887 msgid "Assign to customer" msgstr "" @@ -9431,7 +9616,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2121 templates/navbar.html:38 +#: templates/js/translated/build.js:2123 templates/navbar.html:38 msgid "Build" msgstr "Sestavení" @@ -9497,7 +9682,7 @@ msgid "Available Quantity" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2378 +#: templates/js/translated/build.js:2380 msgid "No location set" msgstr "" @@ -9528,40 +9713,40 @@ msgstr "" msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:507 -#: templates/js/translated/stock.js:1951 +#: stock/templates/stock/item_base.html:504 +#: templates/js/translated/stock.js:1952 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:532 +#: stock/templates/stock/item_base.html:527 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:541 +#: stock/templates/stock/item_base.html:536 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:552 +#: stock/templates/stock/item_base.html:547 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:616 +#: stock/templates/stock/item_base.html:611 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:619 +#: stock/templates/stock/item_base.html:614 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:620 +#: stock/templates/stock/item_base.html:615 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:628 +#: stock/templates/stock/item_base.html:623 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:662 +#: stock/templates/stock/item_base.html:657 msgid "Return to Stock" msgstr "" @@ -9625,28 +9810,32 @@ msgstr "" msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:217 +#: stock/templates/stock/location.html:176 +msgid "Location Type" +msgstr "" + +#: stock/templates/stock/location.html:226 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:218 +#: stock/templates/stock/location.html:227 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:287 +#: stock/templates/stock/location.html:297 #: templates/js/translated/stock.js:2572 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:315 +#: stock/templates/stock/location.html:319 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:388 +#: stock/templates/stock/location.html:392 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:399 +#: stock/templates/stock/location.html:403 msgid "Link Barcode to Stock Location" msgstr "" @@ -9872,12 +10061,12 @@ msgstr "" msgid "Outgoing email has not been configured. Some login and sign-up features may not work correctly!" msgstr "" -#: templates/InvenTree/settings/login.html:25 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:27 templates/account/signup.html:5 #: templates/socialaccount/signup.html:5 msgid "Signup" msgstr "" -#: templates/InvenTree/settings/login.html:34 +#: templates/InvenTree/settings/login.html:36 msgid "Single Sign On" msgstr "" @@ -9916,11 +10105,11 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:42 +#: templates/InvenTree/settings/part.html:43 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:46 +#: templates/InvenTree/settings/part.html:47 msgid "Import Part" msgstr "" @@ -9954,36 +10143,36 @@ msgstr "" msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:36 +#: templates/InvenTree/settings/plugin.html:38 #: templates/InvenTree/settings/sidebar.html:66 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:42 -#: templates/InvenTree/settings/plugin.html:43 +#: templates/InvenTree/settings/plugin.html:44 +#: templates/InvenTree/settings/plugin.html:45 #: templates/js/translated/plugin.js:151 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:45 -#: templates/InvenTree/settings/plugin.html:46 +#: templates/InvenTree/settings/plugin.html:47 +#: templates/InvenTree/settings/plugin.html:48 #: templates/js/translated/plugin.js:224 msgid "Reload Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:56 +#: templates/InvenTree/settings/plugin.html:58 msgid "External plugins are not enabled for this InvenTree installation" msgstr "" -#: templates/InvenTree/settings/plugin.html:71 +#: templates/InvenTree/settings/plugin.html:73 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:80 +#: templates/InvenTree/settings/plugin.html:82 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:82 +#: templates/InvenTree/settings/plugin.html:84 #: templates/js/translated/notification.js:76 msgid "Message" msgstr "" @@ -10070,20 +10259,20 @@ msgstr "" msgid "Pricing Settings" msgstr "" -#: templates/InvenTree/settings/pricing.html:34 +#: templates/InvenTree/settings/pricing.html:35 msgid "Exchange Rates" msgstr "" -#: templates/InvenTree/settings/pricing.html:38 +#: templates/InvenTree/settings/pricing.html:39 msgid "Update Now" msgstr "" -#: templates/InvenTree/settings/pricing.html:46 -#: templates/InvenTree/settings/pricing.html:50 +#: templates/InvenTree/settings/pricing.html:47 +#: templates/InvenTree/settings/pricing.html:51 msgid "Last Update" msgstr "" -#: templates/InvenTree/settings/pricing.html:50 +#: templates/InvenTree/settings/pricing.html:51 msgid "Never" msgstr "" @@ -10140,8 +10329,8 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:547 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:424 +#: templates/js/translated/part.js:393 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:245 users/models.py:402 msgid "Delete" msgstr "Odstranit" @@ -10162,7 +10351,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2226 +#: templates/js/translated/build.js:2228 msgid "group" msgstr "" @@ -10181,12 +10370,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1645 +#: templates/js/translated/part.js:1646 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1646 +#: templates/js/translated/part.js:1647 msgid "Delete Template" msgstr "" @@ -10228,7 +10417,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:500 -#: templates/InvenTree/settings/stock.html:37 +#: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -10250,7 +10439,7 @@ msgid "Home Page" msgstr "Domovská stránka" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2159 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2167 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" @@ -10285,7 +10474,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:33 +#: templates/InvenTree/settings/stock.html:34 msgid "Stock Location Types" msgstr "" @@ -10384,49 +10573,49 @@ msgstr "" msgid "Remove multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:171 msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 +#: templates/InvenTree/settings/user.html:177 msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:175 +#: templates/InvenTree/settings/user.html:178 msgid "Log Out Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:184 +#: templates/InvenTree/settings/user.html:187 msgid "unknown on unknown" msgstr "" -#: templates/InvenTree/settings/user.html:185 +#: templates/InvenTree/settings/user.html:188 msgid "unknown" msgstr "" -#: templates/InvenTree/settings/user.html:189 +#: templates/InvenTree/settings/user.html:192 msgid "IP Address" msgstr "" -#: templates/InvenTree/settings/user.html:190 +#: templates/InvenTree/settings/user.html:193 msgid "Device" msgstr "" -#: templates/InvenTree/settings/user.html:191 +#: templates/InvenTree/settings/user.html:194 msgid "Last Activity" msgstr "" -#: templates/InvenTree/settings/user.html:204 +#: templates/InvenTree/settings/user.html:207 #, python-format msgid "%(time)s ago (this session)" msgstr "" -#: templates/InvenTree/settings/user.html:206 +#: templates/InvenTree/settings/user.html:209 #, python-format msgid "%(time)s ago" msgstr "" -#: templates/InvenTree/settings/user.html:218 +#: templates/InvenTree/settings/user.html:223 msgid "Do you really want to remove the selected email address?" msgstr "" @@ -10576,7 +10765,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:585 +#: templates/js/translated/helpers.js:589 msgid "copy to clipboard" msgstr "" @@ -10607,26 +10796,26 @@ msgstr "Potvrdit" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:17 -#: templates/account/login.html:38 templates/socialaccount/login.html:5 +#: templates/account/login.html:6 templates/account/login.html:19 +#: templates/account/login.html:40 templates/socialaccount/login.html:5 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:23 msgid "Not a member?" msgstr "" -#: templates/account/login.html:23 templates/account/signup.html:11 +#: templates/account/login.html:25 templates/account/signup.html:11 #: templates/account/signup.html:22 templates/socialaccount/signup.html:8 #: templates/socialaccount/signup.html:23 msgid "Sign Up" msgstr "" -#: templates/account/login.html:45 +#: templates/account/login.html:47 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:53 +#: templates/account/login.html:55 msgid "or log in with" msgstr "" @@ -10640,7 +10829,7 @@ msgid "Are you sure you want to sign out?" msgstr "" #: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35 -#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:44 +#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:45 msgid "Return to Site" msgstr "" @@ -10754,15 +10943,19 @@ msgstr "" msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." msgstr "" -#: templates/allauth_2fa/setup.html:23 +#: templates/allauth_2fa/setup.html:20 +msgid "Secret: " +msgstr "" + +#: templates/allauth_2fa/setup.html:24 msgid "Step 2" msgstr "" -#: templates/allauth_2fa/setup.html:27 +#: templates/allauth_2fa/setup.html:28 msgid "Input a token generated by the app:" msgstr "" -#: templates/allauth_2fa/setup.html:37 +#: templates/allauth_2fa/setup.html:38 msgid "Verify" msgstr "" @@ -10827,7 +11020,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:2557 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2556 msgid "Required Quantity" msgstr "" @@ -10841,7 +11034,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3218 +#: templates/js/translated/part.js:3219 msgid "Minimum Quantity" msgstr "" @@ -10929,27 +11122,27 @@ msgstr "" msgid "Delete attachments" msgstr "" -#: templates/js/translated/attachment.js:253 +#: templates/js/translated/attachment.js:260 msgid "Attachment actions" msgstr "" -#: templates/js/translated/attachment.js:275 +#: templates/js/translated/attachment.js:294 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:315 +#: templates/js/translated/attachment.js:334 msgid "Edit Attachment" msgstr "" -#: templates/js/translated/attachment.js:346 +#: templates/js/translated/attachment.js:365 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:366 +#: templates/js/translated/attachment.js:385 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:374 +#: templates/js/translated/attachment.js:393 msgid "Delete attachment" msgstr "" @@ -11006,7 +11199,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155 +#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1158 msgid "Remove stock item" msgstr "" @@ -11196,7 +11389,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2501 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2500 msgid "Variant stock allowed" msgstr "" @@ -11216,30 +11409,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2622 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2621 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2596 -#: templates/js/translated/sales_order.js:1910 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2595 +#: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2600 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2599 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2602 -#: templates/js/translated/part.js:1256 -#: templates/js/translated/sales_order.js:1907 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2601 +#: templates/js/translated/part.js:1257 +#: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2604 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2603 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2587 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2586 msgid "Consumable item" msgstr "" @@ -11271,7 +11464,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2486 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2485 msgid "Required Part" msgstr "" @@ -11440,207 +11633,207 @@ msgstr "" msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:989 templates/js/translated/build.js:2342 +#: templates/js/translated/build.js:991 templates/js/translated/build.js:2344 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/build.js:1003 +#: templates/js/translated/build.js:1005 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1025 +#: templates/js/translated/build.js:1027 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1043 +#: templates/js/translated/build.js:1045 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1061 +#: templates/js/translated/build.js:1063 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1115 +#: templates/js/translated/build.js:1116 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1116 +#: templates/js/translated/build.js:1117 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1120 +#: templates/js/translated/build.js:1121 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1387 +#: templates/js/translated/build.js:1390 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1401 +#: templates/js/translated/build.js:1404 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:1576 #: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1171 +#: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1574 -#: templates/js/translated/sales_order.js:1172 +#: templates/js/translated/build.js:1577 +#: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1637 -#: templates/js/translated/sales_order.js:1121 +#: templates/js/translated/build.js:1640 +#: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1714 +#: templates/js/translated/build.js:1717 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1715 +#: templates/js/translated/build.js:1718 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1729 -#: templates/js/translated/sales_order.js:1186 +#: templates/js/translated/build.js:1732 +#: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1757 +#: templates/js/translated/build.js:1760 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1768 -#: templates/js/translated/sales_order.js:1283 +#: templates/js/translated/build.js:1771 +#: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1841 -#: templates/js/translated/sales_order.js:1362 +#: templates/js/translated/build.js:1844 +#: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1938 +#: templates/js/translated/build.js:1941 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1939 +#: templates/js/translated/build.js:1942 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1941 +#: templates/js/translated/build.js:1944 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1942 +#: templates/js/translated/build.js:1945 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:1946 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:1974 +#: templates/js/translated/build.js:1977 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2080 +#: templates/js/translated/build.js:2082 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2115 templates/js/translated/build.js:2480 -#: templates/js/translated/forms.js:2155 templates/js/translated/forms.js:2171 +#: templates/js/translated/build.js:2117 templates/js/translated/build.js:2479 +#: templates/js/translated/forms.js:2163 templates/js/translated/forms.js:2179 #: templates/js/translated/part.js:2316 templates/js/translated/part.js:2742 -#: templates/js/translated/stock.js:1982 templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:1983 templates/js/translated/stock.js:2710 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2131 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2175 -msgid "Progress" -msgstr "" - -#: templates/js/translated/build.js:2211 templates/js/translated/stock.js:3042 +#: templates/js/translated/build.js:2213 templates/js/translated/stock.js:3042 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2387 -#: templates/js/translated/sales_order.js:1646 +#: templates/js/translated/build.js:2389 +#: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2388 -#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/build.js:2390 +#: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2405 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2415 +#: templates/js/translated/build.js:2417 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2456 +#: templates/js/translated/build.js:2455 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2457 +#: templates/js/translated/build.js:2456 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2475 +#: templates/js/translated/build.js:2474 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2505 templates/js/translated/part.js:790 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/build.js:2504 templates/js/translated/part.js:791 +#: templates/js/translated/part.js:1203 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2540 +#: templates/js/translated/build.js:2539 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2592 -#: templates/js/translated/sales_order.js:1915 +#: templates/js/translated/build.js:2591 +#: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2646 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2653 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2659 -#: templates/js/translated/sales_order.js:2016 +#: templates/js/translated/build.js:2654 +msgid "Allocate tracked items against individual build outputs" +msgstr "" + +#: templates/js/translated/build.js:2662 +#: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2664 templates/js/translated/stock.js:1865 +#: templates/js/translated/build.js:2667 templates/js/translated/stock.js:1868 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2668 -#: templates/js/translated/sales_order.js:2010 +#: templates/js/translated/build.js:2671 +#: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2672 +#: templates/js/translated/build.js:2675 msgid "Remove stock allocation" msgstr "" @@ -11787,7 +11980,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2244 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2245 msgid "Order parts" msgstr "" @@ -11804,34 +11997,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 -#: templates/js/translated/part.js:1210 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:799 +#: templates/js/translated/part.js:1211 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 -#: templates/js/translated/part.js:1214 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:803 +#: templates/js/translated/part.js:1215 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1464 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1465 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1527 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1528 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1528 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1529 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1433 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1434 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1549 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1550 msgid "Delete Parameter" msgstr "" @@ -11886,12 +12079,12 @@ msgid "Delete price break" msgstr "" #: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:672 +#: templates/js/translated/filters.js:667 msgid "true" msgstr "" #: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:673 +#: templates/js/translated/filters.js:668 msgid "false" msgstr "" @@ -11923,7 +12116,7 @@ msgstr "" msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:582 +#: templates/js/translated/filters.js:577 msgid "Create filter" msgstr "" @@ -11956,32 +12149,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1473 templates/modals.html:19 +#: templates/js/translated/forms.js:1477 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1971 +#: templates/js/translated/forms.js:1975 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2275 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2285 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2489 +#: templates/js/translated/forms.js:2499 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3103 +#: templates/js/translated/forms.js:3113 msgid "Select Columns" msgstr "" @@ -12005,51 +12198,15 @@ msgstr "" msgid "No parts required for builds" msgstr "" -#: templates/js/translated/label.js:53 templates/js/translated/report.js:123 +#: templates/js/translated/label.js:55 templates/js/translated/report.js:38 msgid "Select Items" msgstr "" -#: templates/js/translated/label.js:54 +#: templates/js/translated/label.js:56 templates/js/translated/report.js:39 msgid "No items selected for printing" msgstr "" -#: templates/js/translated/label.js:72 -msgid "No Labels Found" -msgstr "" - -#: templates/js/translated/label.js:73 -msgid "No label templates found which match the selected items" -msgstr "" - -#: templates/js/translated/label.js:97 -msgid "selected" -msgstr "" - -#: templates/js/translated/label.js:133 -msgid "Printing Options" -msgstr "" - -#: templates/js/translated/label.js:148 -msgid "Print label" -msgstr "" - -#: templates/js/translated/label.js:148 -msgid "Print labels" -msgstr "" - -#: templates/js/translated/label.js:149 -msgid "Print" -msgstr "" - -#: templates/js/translated/label.js:155 -msgid "Select label template" -msgstr "" - -#: templates/js/translated/label.js:168 -msgid "Select plugin" -msgstr "" - -#: templates/js/translated/label.js:187 +#: templates/js/translated/label.js:150 msgid "Labels sent to printer" msgstr "" @@ -12118,7 +12275,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1604 +#: templates/js/translated/part.js:1605 msgid "ID" msgstr "" @@ -12167,7 +12324,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:1991 +#: templates/js/translated/purchase_order.js:1990 msgid "No line items found" msgstr "" @@ -12199,249 +12356,249 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:308 +#: templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:332 templates/js/translated/stock.js:175 +#: templates/js/translated/part.js:333 templates/js/translated/stock.js:175 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:355 +#: templates/js/translated/part.js:356 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:356 +#: templates/js/translated/part.js:357 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:370 +#: templates/js/translated/part.js:371 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:383 +#: templates/js/translated/part.js:384 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:388 +#: templates/js/translated/part.js:389 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:397 +#: templates/js/translated/part.js:398 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:401 +#: templates/js/translated/part.js:402 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:406 +#: templates/js/translated/part.js:407 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:431 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:433 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:433 +#: templates/js/translated/part.js:434 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:461 +#: templates/js/translated/part.js:462 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:464 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:474 +#: templates/js/translated/part.js:475 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:532 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:532 +#: templates/js/translated/part.js:533 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:546 +#: templates/js/translated/part.js:547 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:549 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:549 +#: templates/js/translated/part.js:550 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:551 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:557 +#: templates/js/translated/part.js:558 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:593 +#: templates/js/translated/part.js:594 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:596 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:600 +#: templates/js/translated/part.js:601 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:603 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:619 +#: templates/js/translated/part.js:620 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:629 +#: templates/js/translated/part.js:630 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:632 +#: templates/js/translated/part.js:633 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:657 +#: templates/js/translated/part.js:658 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:685 +#: templates/js/translated/part.js:686 #: templates/js/translated/table_filters.js:747 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:688 +#: templates/js/translated/part.js:689 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:748 +#: templates/js/translated/part.js:749 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:771 +#: templates/js/translated/part.js:772 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:794 templates/js/translated/part.js:1206 +#: templates/js/translated/part.js:795 templates/js/translated/part.js:1207 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:806 +#: templates/js/translated/part.js:807 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:810 +#: templates/js/translated/part.js:811 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:897 +#: templates/js/translated/part.js:898 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:901 +#: templates/js/translated/part.js:902 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1050 +#: templates/js/translated/part.js:1051 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1144 +#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1145 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1154 +#: templates/js/translated/part.js:1113 templates/js/translated/part.js:1155 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1281 +#: templates/js/translated/part.js:1282 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:1600 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1662 +#: templates/js/translated/part.js:1663 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1674 +#: templates/js/translated/part.js:1675 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1683 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1716 -#: templates/js/translated/purchase_order.js:1655 +#: templates/js/translated/part.js:1717 +#: templates/js/translated/purchase_order.js:1654 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1860 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/return_order.js:756 -#: templates/js/translated/sales_order.js:1875 +#: templates/js/translated/part.js:1861 +#: templates/js/translated/purchase_order.js:2153 +#: templates/js/translated/return_order.js:755 +#: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1906 -#: templates/js/translated/purchase_order.js:2221 +#: templates/js/translated/part.js:1907 +#: templates/js/translated/purchase_order.js:2220 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1969 +#: templates/js/translated/part.js:1970 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1991 +#: templates/js/translated/part.js:1992 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2079 templates/js/translated/part.js:2506 +#: templates/js/translated/part.js:2080 templates/js/translated/part.js:2506 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2200 +#: templates/js/translated/part.js:2201 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2205 +#: templates/js/translated/part.js:2206 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2235 +#: templates/js/translated/part.js:2236 msgid "Set category" msgstr "" @@ -12482,64 +12639,64 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2864 +#: templates/js/translated/part.js:2865 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2886 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2887 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2936 templates/js/translated/stock.js:1453 +#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1456 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1454 -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/part.js:2938 templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1731 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2941 +#: templates/js/translated/part.js:2942 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2958 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2971 +#: templates/js/translated/part.js:2972 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3050 templates/js/translated/part.js:3051 +#: templates/js/translated/part.js:3051 templates/js/translated/part.js:3052 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3053 +#: templates/js/translated/part.js:3054 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3059 +#: templates/js/translated/part.js:3060 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3109 +#: templates/js/translated/part.js:3110 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3115 +#: templates/js/translated/part.js:3116 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3211 +#: templates/js/translated/part.js:3212 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3227 +#: templates/js/translated/part.js:3228 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3272 +#: templates/js/translated/part.js:3273 msgid "Minimum Stock Level" msgstr "" @@ -12665,7 +12822,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:448 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:552 msgid "Mark this order as complete?" msgstr "" @@ -12678,7 +12835,6 @@ msgid "This order has line items which have not been marked as received." msgstr "" #: templates/js/translated/purchase_order.js:460 -#: templates/js/translated/sales_order.js:514 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" @@ -12736,12 +12892,12 @@ msgid "No matching purchase orders" msgstr "" #: templates/js/translated/purchase_order.js:1073 -#: templates/js/translated/return_order.js:491 +#: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" #: templates/js/translated/purchase_order.js:1074 -#: templates/js/translated/return_order.js:492 +#: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" @@ -12790,7 +12946,7 @@ msgid "Quantity to Receive" msgstr "" #: templates/js/translated/purchase_order.js:1333 -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Confirm receipt of items" msgstr "" @@ -12810,81 +12966,66 @@ msgstr "" msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1682 -#: templates/js/translated/return_order.js:286 -#: templates/js/translated/sales_order.js:774 -#: templates/js/translated/sales_order.js:998 +#: templates/js/translated/purchase_order.js:1681 +#: 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:1748 -#: templates/js/translated/return_order.js:354 -#: templates/js/translated/sales_order.js:851 -#: templates/js/translated/sales_order.js:1011 -msgid "Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:1844 +#: templates/js/translated/purchase_order.js:1843 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1862 +#: templates/js/translated/purchase_order.js:1861 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1917 -#: templates/js/translated/sales_order.js:2070 +#: templates/js/translated/purchase_order.js:1916 +#: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1932 -#: templates/js/translated/return_order.js:476 -#: templates/js/translated/return_order.js:669 -#: templates/js/translated/sales_order.js:2083 +#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/return_order.js:475 +#: templates/js/translated/return_order.js:668 +#: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1943 -#: templates/js/translated/return_order.js:682 -#: templates/js/translated/sales_order.js:2094 +#: templates/js/translated/purchase_order.js:1942 +#: templates/js/translated/return_order.js:681 +#: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2225 -#: templates/js/translated/sales_order.js:2024 +#: templates/js/translated/purchase_order.js:2224 +#: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2226 -#: templates/js/translated/return_order.js:801 -#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/purchase_order.js:2225 +#: templates/js/translated/return_order.js:800 +#: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2227 -#: templates/js/translated/return_order.js:805 -#: templates/js/translated/sales_order.js:2031 +#: templates/js/translated/purchase_order.js:2226 +#: templates/js/translated/return_order.js:804 +#: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:63 -msgid "items selected" +#: templates/js/translated/report.js:49 +msgid "Print Report" msgstr "" -#: templates/js/translated/report.js:71 -msgid "Select Report Template" +#: templates/js/translated/report.js:68 +msgid "Report print successful" msgstr "" -#: templates/js/translated/report.js:86 -msgid "Select Test Report Template" -msgstr "" - -#: templates/js/translated/report.js:140 -msgid "No Reports Found" -msgstr "" - -#: templates/js/translated/report.js:141 -msgid "No report templates found which match the selected items" +#: templates/js/translated/report.js:73 +msgid "Report printing failed" msgstr "" #: templates/js/translated/return_order.js:60 @@ -12916,25 +13057,25 @@ msgstr "" msgid "Complete Return Order" msgstr "" -#: templates/js/translated/return_order.js:266 +#: templates/js/translated/return_order.js:265 msgid "No return orders found" msgstr "" -#: templates/js/translated/return_order.js:300 -#: templates/js/translated/sales_order.js:788 +#: templates/js/translated/return_order.js:299 +#: templates/js/translated/sales_order.js:824 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:562 +#: templates/js/translated/return_order.js:561 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:693 -#: templates/js/translated/sales_order.js:2231 +#: templates/js/translated/return_order.js:692 +#: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:798 +#: templates/js/translated/return_order.js:797 msgid "Mark item as received" msgstr "" @@ -12978,140 +13119,156 @@ msgstr "" msgid "Skip" msgstr "" +#: templates/js/translated/sales_order.js:484 +msgid "Ship Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:500 +msgid "Ship this order?" +msgstr "" + +#: templates/js/translated/sales_order.js:506 +msgid "Order cannot be shipped as there are incomplete shipments" +msgstr "" + #: templates/js/translated/sales_order.js:513 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:535 +#: templates/js/translated/sales_order.js:514 +msgid "Shipping this order means that the order and line items will no longer be editable." +msgstr "" + +#: templates/js/translated/sales_order.js:572 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:540 +#: templates/js/translated/sales_order.js:577 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:559 +#: templates/js/translated/sales_order.js:596 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:564 +#: templates/js/translated/sales_order.js:601 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:618 +#: templates/js/translated/sales_order.js:655 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:728 +#: templates/js/translated/sales_order.js:764 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:908 +#: templates/js/translated/sales_order.js:944 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:911 +#: templates/js/translated/sales_order.js:947 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:916 +#: templates/js/translated/sales_order.js:952 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:933 +#: templates/js/translated/sales_order.js:969 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:948 +#: templates/js/translated/sales_order.js:984 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:981 +#: templates/js/translated/sales_order.js:1017 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1006 +#: templates/js/translated/sales_order.js:1042 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1030 -#: templates/js/translated/sales_order.js:1529 +#: templates/js/translated/sales_order.js:1066 +#: templates/js/translated/sales_order.js:1565 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1048 +#: templates/js/translated/sales_order.js:1084 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1052 +#: templates/js/translated/sales_order.js:1088 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1219 +#: templates/js/translated/sales_order.js:1255 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1270 +#: templates/js/translated/sales_order.js:1306 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1271 +#: templates/js/translated/sales_order.js:1307 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1477 +#: templates/js/translated/sales_order.js:1513 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1569 +#: templates/js/translated/sales_order.js:1605 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1583 +#: templates/js/translated/sales_order.js:1619 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1584 +#: templates/js/translated/sales_order.js:1620 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1623 -#: templates/js/translated/sales_order.js:1710 -#: templates/js/translated/stock.js:1773 +#: templates/js/translated/sales_order.js:1659 +#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/stock.js:1776 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1631 -#: templates/js/translated/sales_order.js:1719 +#: templates/js/translated/sales_order.js:1667 +#: templates/js/translated/sales_order.js:1755 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2008 +#: templates/js/translated/sales_order.js:2044 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/sales_order.js:2012 +#: templates/js/translated/sales_order.js:2048 msgid "Purchase stock" msgstr "" -#: templates/js/translated/sales_order.js:2021 -#: templates/js/translated/sales_order.js:2209 +#: templates/js/translated/sales_order.js:2057 +#: templates/js/translated/sales_order.js:2245 msgid "Calculate price" msgstr "" -#: templates/js/translated/sales_order.js:2035 +#: templates/js/translated/sales_order.js:2071 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2074 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/sales_order.js:2109 +#: templates/js/translated/sales_order.js:2145 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2217 +#: templates/js/translated/sales_order.js:2253 msgid "Update Unit Price" msgstr "" @@ -13319,7 +13476,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:414 +#: templates/js/translated/stock.js:1042 users/models.py:392 msgid "Add" msgstr "" @@ -13327,180 +13484,180 @@ msgstr "" msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:1180 templates/js/translated/stock.js:3299 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1178 +#: templates/js/translated/stock.js:1181 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1224 +#: templates/js/translated/stock.js:1227 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1360 +#: templates/js/translated/stock.js:1363 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1362 +#: templates/js/translated/stock.js:1365 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1367 +#: templates/js/translated/stock.js:1370 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1447 +#: templates/js/translated/stock.js:1450 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1450 +#: templates/js/translated/stock.js:1453 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1473 +#: templates/js/translated/stock.js:1476 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1540 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1550 +#: templates/js/translated/stock.js:1553 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1562 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1713 +#: templates/js/translated/stock.js:1716 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1733 +#: templates/js/translated/stock.js:1736 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1765 +#: templates/js/translated/stock.js:1768 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1769 +#: templates/js/translated/stock.js:1772 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1777 +#: templates/js/translated/stock.js:1780 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1786 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1839 +#: templates/js/translated/stock.js:1842 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1848 +#: templates/js/translated/stock.js:1851 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1897 +#: templates/js/translated/stock.js:1900 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:1952 +#: templates/js/translated/stock.js:1953 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:1957 +#: templates/js/translated/stock.js:1958 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1969 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2012 +#: templates/js/translated/stock.js:2013 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2090 +#: templates/js/translated/stock.js:2091 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2095 +#: templates/js/translated/stock.js:2096 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2101 +#: templates/js/translated/stock.js:2102 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2103 +#: templates/js/translated/stock.js:2104 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2105 +#: templates/js/translated/stock.js:2106 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2108 +#: templates/js/translated/stock.js:2109 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2110 +#: templates/js/translated/stock.js:2111 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2114 +#: templates/js/translated/stock.js:2115 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2116 +#: templates/js/translated/stock.js:2117 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2123 +#: templates/js/translated/stock.js:2124 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2125 +#: templates/js/translated/stock.js:2126 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2129 +#: templates/js/translated/stock.js:2130 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2294 +#: templates/js/translated/stock.js:2295 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2342 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2469 +#: templates/js/translated/stock.js:2470 msgid "No stock items matching query" msgstr "" @@ -13973,6 +14130,22 @@ msgstr "" msgid "Show all notifications and history" msgstr "" +#: templates/pui_banner.html:9 +msgid "Platform UI - the new UI for InvenTree - provides more modern administration options." +msgstr "" + +#: templates/pui_banner.html:12 +msgid "Platform UI - the new UI for InvenTree - is ready to be tested." +msgstr "" + +#: templates/pui_banner.html:15 +msgid "Try it out now" +msgstr "" + +#: templates/pui_banner.html:15 +msgid "here" +msgstr "" + #: templates/qr_code.html:11 msgid "QR data not provided" msgstr "" @@ -14194,35 +14367,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:397 +#: users/models.py:375 msgid "Permission set" msgstr "Nastavení oprávnění" -#: users/models.py:406 +#: users/models.py:384 msgid "Group" msgstr "Skupina" -#: users/models.py:410 +#: users/models.py:388 msgid "View" msgstr "Zobrazit" -#: users/models.py:410 +#: users/models.py:388 msgid "Permission to view items" msgstr "Oprávnění k zobrazení položek" -#: users/models.py:414 +#: users/models.py:392 msgid "Permission to add items" msgstr "Oprávnění přidat položky" -#: users/models.py:418 +#: users/models.py:396 msgid "Change" msgstr "Změnit" -#: users/models.py:420 +#: users/models.py:398 msgid "Permissions to edit items" msgstr "Oprávnění k úpravě položek" -#: users/models.py:426 +#: users/models.py:404 msgid "Permission to delete items" msgstr "Oprávnění k odstranění položek" diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po index 25c8b552c6..4a75629555 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-04-20 13:19+0000\n" -"PO-Revision-Date: 2024-04-21 04:19\n" +"POT-Creation-Date: 2024-06-19 04:39+0000\n" +"PO-Revision-Date: 2024-06-19 04:49\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -17,11 +17,11 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 216\n" -#: InvenTree/api.py:255 +#: InvenTree/api.py:272 msgid "API endpoint not found" msgstr "API endpoint ikke fundet" -#: InvenTree/api.py:519 +#: InvenTree/api.py:520 msgid "User does not have permission to view this model" msgstr "Bruger har ikke tilladelse til at se denne model" @@ -52,30 +52,30 @@ msgstr "Ugyldigt antal angivet ({exc})" msgid "Error details can be found in the admin panel" msgstr "Fejloplysninger kan findes i admin panelet" -#: InvenTree/fields.py:139 +#: InvenTree/fields.py:136 msgid "Enter date" msgstr "Angiv dato" -#: InvenTree/fields.py:208 InvenTree/models.py:1021 build/serializers.py:438 -#: build/serializers.py:516 build/templates/build/sidebar.html:21 -#: company/models.py:847 company/templates/company/sidebar.html:37 -#: order/models.py:1283 order/templates/order/po_sidebar.html:11 +#: InvenTree/fields.py:205 InvenTree/models.py:918 build/serializers.py:452 +#: build/serializers.py:530 build/templates/build/sidebar.html:21 +#: company/models.py:817 company/templates/company/sidebar.html:37 +#: order/models.py:1296 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:3175 part/templates/part/part_sidebar.html:63 -#: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:226 stock/models.py:2332 stock/models.py:2449 -#: stock/serializers.py:501 stock/serializers.py:659 stock/serializers.py:755 -#: stock/serializers.py:805 stock/serializers.py:1114 stock/serializers.py:1203 -#: stock/serializers.py:1368 stock/templates/stock/stock_sidebar.html:25 +#: part/models.py:3183 part/templates/part/part_sidebar.html:63 +#: report/templates/report/inventree_build_order_report.html:172 +#: stock/admin.py:230 stock/models.py:2309 stock/models.py:2431 +#: stock/serializers.py:632 stock/serializers.py:790 stock/serializers.py:886 +#: stock/serializers.py:936 stock/serializers.py:1230 stock/serializers.py:1319 +#: stock/serializers.py:1484 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:1080 -#: templates/js/translated/purchase_order.js:2201 -#: templates/js/translated/return_order.js:776 -#: templates/js/translated/sales_order.js:1067 -#: templates/js/translated/sales_order.js:1982 -#: templates/js/translated/stock.js:1533 templates/js/translated/stock.js:2427 +#: templates/js/translated/part.js:1081 +#: templates/js/translated/purchase_order.js:2200 +#: templates/js/translated/return_order.js:775 +#: templates/js/translated/sales_order.js:1103 +#: templates/js/translated/sales_order.js:2018 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:2428 msgid "Notes" msgstr "Bemærkninger" @@ -120,19 +120,19 @@ msgstr "Bekræftelse af e-mailadresse" msgid "You must type the same email each time." msgstr "Du skal indtaste den samme e-mail hver gang." -#: InvenTree/forms.py:253 InvenTree/forms.py:261 +#: InvenTree/forms.py:248 InvenTree/forms.py:256 msgid "The provided primary email address is not valid." msgstr "Den indtastede email adresse er ikke gyldig." -#: InvenTree/forms.py:268 +#: InvenTree/forms.py:263 msgid "The provided email domain is not approved." msgstr "Det angivne e-mail domæne er ikke godkendt." -#: InvenTree/forms.py:395 +#: InvenTree/forms.py:390 msgid "Registration is disabled." msgstr "Registrering er deaktiveret." -#: InvenTree/helpers.py:525 order/models.py:541 order/models.py:743 +#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:764 msgid "Invalid quantity provided" msgstr "Ugyldigt antal angivet" @@ -171,35 +171,35 @@ msgstr "" msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tags fra denne værdi" -#: InvenTree/helpers_model.py:150 +#: InvenTree/helpers_model.py:140 msgid "Connection error" msgstr "Forbindelsesfejl" -#: InvenTree/helpers_model.py:155 InvenTree/helpers_model.py:162 +#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 msgid "Server responded with invalid status code" msgstr "Serveren svarede med ugyldig statuskode" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:148 msgid "Exception occurred" msgstr "Der opstod en fejl" -#: InvenTree/helpers_model.py:168 +#: InvenTree/helpers_model.py:158 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarede med ugyldig Content-Length værdi" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:161 msgid "Image size is too large" msgstr "Billedstørrelsen er for stor" -#: InvenTree/helpers_model.py:183 +#: InvenTree/helpers_model.py:173 msgid "Image download exceeded maximum size" msgstr "Billeddownload overskred maksimumstørrelsen" -#: InvenTree/helpers_model.py:188 +#: InvenTree/helpers_model.py:178 msgid "Remote server returned empty response" msgstr "Fjernserver returnerede tomt svar" -#: InvenTree/helpers_model.py:196 +#: InvenTree/helpers_model.py:186 msgid "Supplied URL is not a valid image file" msgstr "Angivet URL er ikke en gyldig billedfil" @@ -296,42 +296,50 @@ msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasilien)" #: InvenTree/locales.py:41 +msgid "Romanian" +msgstr "" + +#: InvenTree/locales.py:42 msgid "Russian" msgstr "Russisk" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:43 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:44 msgid "Slovenian" msgstr "Slovensk" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:45 msgid "Serbian" msgstr "Serbisk" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:46 msgid "Swedish" msgstr "Svensk" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:47 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:48 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:49 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:50 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:51 msgid "Chinese (Simplified)" msgstr "Kinesisk (forenklet)" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:52 msgid "Chinese (Traditional)" msgstr "Kinesisk (traditionelt)" @@ -340,156 +348,68 @@ msgstr "Kinesisk (traditionelt)" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:133 +#: InvenTree/magic_login.py:38 company/models.py:136 #: company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:107 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:162 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadata skal være et python dict objekt" -#: InvenTree/models.py:168 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:169 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata felt, til brug af eksterne plugins" -#: InvenTree/models.py:399 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Forkert formateret mønster" -#: InvenTree/models.py:406 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Ukendt formatnøgle angivet" -#: InvenTree/models.py:412 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøgle" -#: InvenTree/models.py:423 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referencefelt må ikke være tomt" -#: InvenTree/models.py:431 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Reference skal matche det påkrævede mønster" -#: InvenTree/models.py:462 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referencenummer er for stort" -#: InvenTree/models.py:536 -msgid "Missing file" -msgstr "Manglende fil" - -#: InvenTree/models.py:537 -msgid "Missing external link" -msgstr "Manglende eksternt link" - -#: InvenTree/models.py:558 stock/models.py:2444 -#: templates/js/translated/attachment.js:119 -#: templates/js/translated/attachment.js:326 -msgid "Attachment" -msgstr "Vedhæftning" - -#: InvenTree/models.py:559 -msgid "Select file to attach" -msgstr "Vælg fil, der skal vedhæftes" - -#: InvenTree/models.py:567 common/models.py:3018 company/models.py:146 -#: company/models.py:457 company/models.py:514 company/models.py:830 -#: order/models.py:291 order/models.py:1288 order/models.py:1702 -#: part/admin.py:55 part/models.py:919 -#: part/templates/part/part_scheduling.html:11 -#: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:225 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2456 -#: templates/js/translated/purchase_order.js:2041 -#: templates/js/translated/purchase_order.js:2205 -#: templates/js/translated/return_order.js:780 -#: templates/js/translated/sales_order.js:1056 -#: templates/js/translated/sales_order.js:1987 -msgid "Link" -msgstr "" - -#: InvenTree/models.py:568 build/models.py:315 part/models.py:920 -#: stock/models.py:819 -msgid "Link to external URL" -msgstr "Link til ekstern URL" - -#: InvenTree/models.py:574 templates/js/translated/attachment.js:120 -#: templates/js/translated/attachment.js:341 -msgid "Comment" -msgstr "Kommentar" - -#: InvenTree/models.py:575 -msgid "File comment" -msgstr "Fil kommentar" - -#: InvenTree/models.py:583 InvenTree/models.py:584 common/models.py:2494 -#: common/models.py:2495 common/models.py:2719 common/models.py:2720 -#: common/models.py:2965 common/models.py:2966 part/models.py:3185 -#: part/models.py:3272 part/models.py:3365 part/models.py:3393 -#: plugin/models.py:250 plugin/models.py:251 -#: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3036 users/models.py:111 -msgid "User" -msgstr "Bruger" - -#: InvenTree/models.py:588 -msgid "upload date" -msgstr "dato for upload" - -#: InvenTree/models.py:610 -msgid "Filename must not be empty" -msgstr "Filnavn må ikke være tomt" - -#: InvenTree/models.py:621 -msgid "Invalid attachment directory" -msgstr "Ugyldig vedhæftningsmappe" - -#: InvenTree/models.py:651 -#, python-brace-format -msgid "Filename contains illegal character '{c}'" -msgstr "Filnavn indeholder ugyldigt tegn '{c}'" - -#: InvenTree/models.py:654 -msgid "Filename missing extension" -msgstr "Filnavn mangler filtype" - -#: InvenTree/models.py:663 -msgid "Attachment with this filename already exists" -msgstr "Vedhæftning med dette filnavn findes allerede" - -#: InvenTree/models.py:670 -msgid "Error renaming file" -msgstr "Fejl ved omdøbning af fil" - -#: InvenTree/models.py:846 +#: InvenTree/models.py:719 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:863 +#: InvenTree/models.py:736 msgid "Invalid choice" msgstr "Ugyldigt valg" -#: InvenTree/models.py:893 common/models.py:2706 common/models.py:3104 -#: common/serializers.py:370 company/models.py:613 label/models.py:120 -#: machine/models.py:24 part/models.py:855 part/models.py:3616 -#: plugin/models.py:41 report/models.py:176 stock/models.py:76 +#: InvenTree/models.py:766 common/models.py:2623 common/models.py:3036 +#: common/serializers.py:408 company/models.py:580 machine/models.py:24 +#: part/models.py:891 part/models.py:3639 plugin/models.py:51 +#: report/models.py:150 stock/models.py:73 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 -#: templates/InvenTree/settings/plugin.html:81 +#: 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 @@ -497,192 +417,188 @@ msgstr "Ugyldigt valg" #: 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:1186 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1610 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1187 +#: templates/js/translated/part.js:1475 templates/js/translated/part.js:1611 #: templates/js/translated/part.js:2749 templates/js/translated/stock.js:2716 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:899 build/models.py:188 -#: build/templates/build/detail.html:24 common/models.py:136 -#: company/models.py:522 company/models.py:838 +#: InvenTree/models.py:772 build/models.py:220 +#: build/templates/build/detail.html:24 common/models.py:138 +#: company/models.py:509 company/models.py:808 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:127 -#: order/models.py:277 order/models.py:1316 part/admin.py:303 part/admin.py:414 -#: part/models.py:878 part/models.py:3631 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 order/models.py:289 +#: order/models.py:1329 part/admin.py:305 part/admin.py:408 part/models.py:914 +#: part/models.py:3654 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:189 -#: report/models.py:655 report/models.py:729 -#: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:55 stock/models.py:82 stock/templates/stock/location.html:125 +#: 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:79 stock/templates/stock/location.html:125 #: 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/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2137 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2139 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:1238 -#: templates/js/translated/part.js:1483 templates/js/translated/part.js:1621 -#: templates/js/translated/part.js:1958 templates/js/translated/part.js:2355 -#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2896 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1239 +#: templates/js/translated/part.js:1484 templates/js/translated/part.js:1622 +#: templates/js/translated/part.js:1959 templates/js/translated/part.js:2355 +#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2897 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1707 -#: templates/js/translated/purchase_order.js:1850 -#: templates/js/translated/purchase_order.js:2023 -#: templates/js/translated/return_order.js:314 -#: templates/js/translated/sales_order.js:802 -#: templates/js/translated/sales_order.js:1812 -#: templates/js/translated/stock.js:1512 templates/js/translated/stock.js:2057 +#: templates/js/translated/purchase_order.js:1706 +#: templates/js/translated/purchase_order.js:1849 +#: templates/js/translated/purchase_order.js:2022 +#: 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:1515 templates/js/translated/stock.js:2058 #: templates/js/translated/stock.js:2748 templates/js/translated/stock.js:2831 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:900 stock/models.py:83 +#: InvenTree/models.py:773 stock/models.py:80 msgid "Description (optional)" msgstr "Beskrivelse (valgfri)" -#: InvenTree/models.py:909 +#: InvenTree/models.py:782 msgid "parent" msgstr "overordnet" -#: InvenTree/models.py:915 templates/js/translated/part.js:2794 +#: InvenTree/models.py:788 templates/js/translated/part.js:2794 #: templates/js/translated/stock.js:2757 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:1021 +#: InvenTree/models.py:918 msgid "Markdown notes (optional)" msgstr "Markdown noter (valgfri)" -#: InvenTree/models.py:1050 +#: InvenTree/models.py:947 msgid "Barcode Data" msgstr "Stregkode Data" -#: InvenTree/models.py:1051 +#: InvenTree/models.py:948 msgid "Third party barcode data" msgstr "Tredjeparts stregkode data" -#: InvenTree/models.py:1057 +#: InvenTree/models.py:954 msgid "Barcode Hash" msgstr "Stregkode Hash" -#: InvenTree/models.py:1058 +#: InvenTree/models.py:955 msgid "Unique hash of barcode data" msgstr "Unik hash af stregkode data" -#: InvenTree/models.py:1111 +#: InvenTree/models.py:1008 msgid "Existing barcode found" msgstr "Eksisterende stregkode fundet" -#: InvenTree/models.py:1154 +#: InvenTree/models.py:1051 msgid "Server Error" msgstr "Serverfejl" -#: InvenTree/models.py:1155 +#: InvenTree/models.py:1052 msgid "An error has been logged by the server." msgstr "En fejl blev logget af serveren." -#: InvenTree/serializers.py:62 part/models.py:4169 +#: InvenTree/serializers.py:63 part/models.py:4192 msgid "Must be a valid number" msgstr "Skal være et gyldigt tal" -#: InvenTree/serializers.py:99 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:2993 +#: InvenTree/serializers.py:100 company/models.py:186 +#: company/templates/company/company_base.html:112 part/models.py:3001 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:102 +#: InvenTree/serializers.py:103 msgid "Select currency from available options" msgstr "Vælg valuta fra tilgængelige muligheder" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:442 msgid "You do not have permission to change this user role." msgstr "Du har ikke tilladelse til at ændre denne brugerrolle." -#: InvenTree/serializers.py:453 +#: InvenTree/serializers.py:454 msgid "Only superusers can create new users" msgstr "Kun superbrugere kan oprette nye brugere" -#: InvenTree/serializers.py:472 +#: InvenTree/serializers.py:473 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:475 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:481 +#: InvenTree/serializers.py:482 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:542 -msgid "Filename" -msgstr "Filnavn" - -#: InvenTree/serializers.py:576 +#: InvenTree/serializers.py:540 msgid "Invalid value" msgstr "Ugyldig værdi" -#: InvenTree/serializers.py:596 +#: InvenTree/serializers.py:560 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:597 +#: InvenTree/serializers.py:561 msgid "Select data file for upload" msgstr "Vælg datafilen til upload" -#: InvenTree/serializers.py:614 +#: InvenTree/serializers.py:578 msgid "Unsupported file type" msgstr "Filtype ikke understøttet" -#: InvenTree/serializers.py:620 +#: InvenTree/serializers.py:584 msgid "File is too large" msgstr "Filen er for stor" -#: InvenTree/serializers.py:641 +#: InvenTree/serializers.py:605 msgid "No columns found in file" msgstr "Ingen kolonner fundet i fil" -#: InvenTree/serializers.py:644 +#: InvenTree/serializers.py:608 msgid "No data rows found in file" msgstr "Ingen datarækker fundet i fil" -#: InvenTree/serializers.py:757 +#: InvenTree/serializers.py:721 msgid "No data rows provided" msgstr "Ingen data-rækker angivet" -#: InvenTree/serializers.py:760 +#: InvenTree/serializers.py:724 msgid "No data columns supplied" msgstr "Ingen data-kolonner angivet" -#: InvenTree/serializers.py:827 +#: InvenTree/serializers.py:791 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Mangler påkrævet kolonne: '{name}'" -#: InvenTree/serializers.py:836 +#: InvenTree/serializers.py:800 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikeret kolonne: '{col}'" -#: InvenTree/serializers.py:859 +#: InvenTree/serializers.py:840 msgid "Remote Image" msgstr "Eksternt billede" -#: InvenTree/serializers.py:860 +#: InvenTree/serializers.py:841 msgid "URL of remote image file" msgstr "URL til ekstern billedfil" -#: InvenTree/serializers.py:878 +#: InvenTree/serializers.py:859 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:1161 +#: InvenTree/status.py:66 part/serializers.py:1166 msgid "Background worker check failed" msgstr "Kontrol af baggrundstjeneste mislykkedes" @@ -694,223 +610,27 @@ msgstr "E-mail backend ej konfigureret" msgid "InvenTree system health checks failed" msgstr "Helbredstjek af InvenTree system mislykkedes" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 -#: InvenTree/status_codes.py:182 generic/states/tests.py:17 -#: templates/js/translated/table_filters.js:598 -msgid "Pending" -msgstr "Afventende" - -#: InvenTree/status_codes.py:13 generic/states/tests.py:18 -msgid "Placed" -msgstr "Placeret" - -#: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:169 generic/states/tests.py:19 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:161 -msgid "Complete" -msgstr "Fuldført" - -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 -msgid "Cancelled" -msgstr "Annulleret" - -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 -#: InvenTree/status_codes.py:67 -msgid "Lost" -msgstr "Mistet" - -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 -#: InvenTree/status_codes.py:73 -msgid "Returned" -msgstr "Returneret" - -#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 -msgid "In Progress" -msgstr "Igangværende" - -#: InvenTree/status_codes.py:43 order/models.py:1564 -#: templates/js/translated/sales_order.js:1523 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1957 -msgid "Shipped" -msgstr "Afsendt" - -#: InvenTree/status_codes.py:62 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:63 -msgid "Attention needed" -msgstr "Opmærksomhed påkrævet" - -#: InvenTree/status_codes.py:64 -msgid "Damaged" -msgstr "Beskadiget" - -#: InvenTree/status_codes.py:65 -msgid "Destroyed" -msgstr "Destrueret" - -#: InvenTree/status_codes.py:66 -msgid "Rejected" -msgstr "Afvist" - -#: InvenTree/status_codes.py:70 -msgid "Quarantined" -msgstr "I karantæne" - -#: InvenTree/status_codes.py:91 -msgid "Legacy stock tracking entry" -msgstr "Forældet lager sporings post" - -#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544 -msgid "Stock item created" -msgstr "Lager-element oprettet" - -#: InvenTree/status_codes.py:96 -msgid "Edited stock item" -msgstr "Redigeret lager-element" - -#: InvenTree/status_codes.py:97 -msgid "Assigned serial number" -msgstr "Serienummer tildelt" - -#: InvenTree/status_codes.py:100 -msgid "Stock counted" -msgstr "Lagerbeholdning optalt" - -#: InvenTree/status_codes.py:101 -msgid "Stock manually added" -msgstr "Lagerbeholdning tilføjet manuelt" - -#: InvenTree/status_codes.py:102 -msgid "Stock manually removed" -msgstr "Lagerbeholdning fjernet manuelt" - -#: InvenTree/status_codes.py:105 -msgid "Location changed" -msgstr "Lokation ændret" - -#: InvenTree/status_codes.py:106 -msgid "Stock updated" -msgstr "Lager opdateret" - -#: InvenTree/status_codes.py:109 -msgid "Installed into assembly" -msgstr "Monteret i samling" - -#: InvenTree/status_codes.py:110 -msgid "Removed from assembly" -msgstr "Fjernet fra samling" - -#: InvenTree/status_codes.py:112 -msgid "Installed component item" -msgstr "Installeret komponent element" - -#: InvenTree/status_codes.py:113 -msgid "Removed component item" -msgstr "Fjernet komponent element" - -#: InvenTree/status_codes.py:116 -msgid "Split from parent item" -msgstr "Opdel fra overordnet element" - -#: InvenTree/status_codes.py:117 -msgid "Split child item" -msgstr "Opdel underordnet element" - -#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1855 -msgid "Merged stock items" -msgstr "Flettede lagervarer" - -#: InvenTree/status_codes.py:123 -msgid "Converted to variant" -msgstr "Konverteret til variant" - -#: InvenTree/status_codes.py:126 -msgid "Build order output created" -msgstr "Byggeordre output genereret" - -#: InvenTree/status_codes.py:127 -msgid "Build order output completed" -msgstr "Byggeorder output fuldført" - -#: InvenTree/status_codes.py:128 -msgid "Build order output rejected" -msgstr "" - -#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1761 -msgid "Consumed by build order" -msgstr "Brugt efter byggeordre" - -#: InvenTree/status_codes.py:132 -msgid "Shipped against Sales Order" -msgstr "Afsendt mod salgsordre" - -#: InvenTree/status_codes.py:135 -msgid "Received against Purchase Order" -msgstr "Modtaget mod indkøbsordre" - -#: InvenTree/status_codes.py:138 -msgid "Returned against Return Order" -msgstr "Returneret mod returordre" - -#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375 -msgid "Sent to customer" -msgstr "Sendt til kunde" - -#: InvenTree/status_codes.py:142 -msgid "Returned from customer" -msgstr "Returneret fra kunde" - -#: InvenTree/status_codes.py:149 -msgid "Production" -msgstr "Produktion" - -#: InvenTree/status_codes.py:185 -msgid "Return" -msgstr "Retur" - -#: InvenTree/status_codes.py:188 -msgid "Repair" -msgstr "Reparér" - -#: InvenTree/status_codes.py:191 -msgid "Replace" -msgstr "Erstat" - -#: InvenTree/status_codes.py:194 -msgid "Refund" -msgstr "Refusion" - -#: InvenTree/status_codes.py:197 -msgid "Reject" -msgstr "Afvis" - -#: InvenTree/templatetags/inventree_extras.py:183 +#: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Ukendt database" -#: InvenTree/validators.py:31 InvenTree/validators.py:33 +#: InvenTree/validators.py:32 InvenTree/validators.py:34 msgid "Invalid physical unit" msgstr "Ugyldig fysisk enhed" -#: InvenTree/validators.py:39 +#: InvenTree/validators.py:40 msgid "Not a valid currency code" msgstr "Ikke en gyldig valutakode" -#: InvenTree/validators.py:121 InvenTree/validators.py:137 +#: InvenTree/validators.py:118 InvenTree/validators.py:134 msgid "Overage value must not be negative" msgstr "Overskud må ikke være negativ" -#: InvenTree/validators.py:139 +#: InvenTree/validators.py:136 msgid "Overage must not exceed 100%" msgstr "Overskuddet må ikke overstige 100%" -#: InvenTree/validators.py:145 +#: InvenTree/validators.py:142 msgid "Invalid value for overage" msgstr "Ugyldig værdi for overskud" @@ -938,62 +658,62 @@ msgstr "Systemoplysninger" msgid "About InvenTree" msgstr "Om InvenTree" -#: build/api.py:238 +#: build/api.py:255 msgid "Build must be cancelled before it can be deleted" msgstr "Produktion skal anulleres, før den kan slettes" -#: build/api.py:282 part/models.py:4047 templates/js/translated/bom.js:997 -#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2521 +#: build/api.py:299 part/models.py:4070 templates/js/translated/bom.js:997 +#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Forbrugsvare" -#: build/api.py:283 part/models.py:4041 part/templates/part/upload_bom.html:58 +#: build/api.py:300 part/models.py:4064 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 -#: templates/js/translated/build.js:2530 +#: templates/js/translated/build.js:2529 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 msgid "Optional" msgstr "Valgfri" -#: build/api.py:284 templates/js/translated/table_filters.js:408 +#: build/api.py:301 templates/js/translated/table_filters.js:408 #: templates/js/translated/table_filters.js:579 msgid "Tracked" msgstr "Sporet" -#: build/api.py:286 part/admin.py:144 templates/js/translated/build.js:1741 -#: templates/js/translated/build.js:2630 -#: templates/js/translated/sales_order.js:1929 +#: build/api.py:303 part/admin.py:144 templates/js/translated/build.js:1744 +#: templates/js/translated/build.js:2629 +#: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Allokeret" -#: build/api.py:294 company/models.py:902 company/serializers.py:383 +#: build/api.py:311 company/models.py:872 company/serializers.py:359 #: 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:2562 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2561 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:228 -#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 -#: templates/js/translated/part.js:699 +#: templates/js/translated/model_renderers.js:234 +#: templates/js/translated/part.js:693 templates/js/translated/part.js:695 +#: templates/js/translated/part.js:700 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" msgstr "Tilgængelig" -#: build/models.py:74 build/templates/build/build_base.html:9 +#: build/models.py:85 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 -#: report/templates/report/inventree_build_order_base.html:105 -#: templates/email/build_order_completed.html:16 +#: report/templates/report/inventree_build_order_report.html:105 +#: stock/serializers.py:82 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 #: templates/js/translated/build.js:972 templates/js/translated/stock.js:2892 msgid "Build Order" msgstr "Produktionsordre" -#: build/models.py:75 build/templates/build/build_base.html:13 +#: build/models.py:86 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 @@ -1004,708 +724,756 @@ msgstr "Produktionsordre" msgid "Build Orders" msgstr "Produktionsordrer" -#: build/models.py:116 +#: build/models.py:133 msgid "Invalid choice for parent build" msgstr "Ugyldigt valg for overordnet produktion" -#: build/models.py:127 order/models.py:239 +#: build/models.py:144 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:133 +#: build/models.py:150 msgid "Build order part cannot be changed" msgstr "Byggeordre enhed kan ikke ændres" -#: build/models.py:179 +#: build/models.py:211 msgid "Build Order Reference" msgstr "Produktionsordre reference" -#: build/models.py:180 order/models.py:442 order/models.py:898 -#: order/models.py:1276 order/models.py:1996 part/admin.py:417 -#: part/models.py:4062 part/templates/part/upload_bom.html:54 +#: build/models.py:212 order/models.py:463 order/models.py:926 +#: order/models.py:1289 order/models.py:2020 part/admin.py:411 +#: part/models.py:4085 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 -#: report/templates/report/inventree_po_report_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:26 -#: report/templates/report/inventree_so_report_base.html:28 +#: 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:2513 templates/js/translated/order.js:291 +#: templates/js/translated/build.js:2512 templates/js/translated/order.js:291 #: templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2066 -#: templates/js/translated/return_order.js:729 -#: templates/js/translated/sales_order.js:1818 +#: templates/js/translated/purchase_order.js:2065 +#: templates/js/translated/return_order.js:728 +#: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:191 +#: build/models.py:223 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:199 build/templates/build/build_base.html:183 +#: build/models.py:231 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet produktion" -#: build/models.py:200 +#: build/models.py:232 msgid "BuildOrder to which this build is allocated" msgstr "Produktionsordre som er tildelt denne produktion" -#: build/models.py:205 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1056 order/api.py:817 -#: order/models.py:1401 order/models.py:1544 order/models.py:1545 -#: part/api.py:1547 part/api.py:1841 part/models.py:390 part/models.py:3004 -#: part/models.py:3148 part/models.py:3292 part/models.py:3315 -#: part/models.py:3336 part/models.py:3358 part/models.py:3468 -#: part/models.py:3764 part/models.py:3920 part/models.py:4013 -#: part/models.py:4374 part/serializers.py:1107 part/serializers.py:1713 +#: build/models.py:237 build/templates/build/build_base.html:97 +#: build/templates/build/detail.html:29 company/models.py:1026 order/api.py:805 +#: order/models.py:1414 order/models.py:1559 order/models.py:1560 +#: part/api.py:1478 part/api.py:1772 part/models.py:395 part/models.py:3012 +#: part/models.py:3156 part/models.py:3303 part/models.py:3324 +#: part/models.py:3346 part/models.py:3477 part/models.py:3787 +#: part/models.py:3943 part/models.py:4036 part/models.py:4395 +#: part/serializers.py:1112 part/serializers.py:1718 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_base.html:109 -#: report/templates/report/inventree_po_report_base.html:27 -#: report/templates/report/inventree_return_order_report_base.html:24 -#: report/templates/report/inventree_slr_report.html:102 -#: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:267 stock/serializers.py:689 -#: templates/InvenTree/search.html:82 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:109 stock/serializers.py:157 stock/serializers.py:423 +#: stock/serializers.py:820 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:546 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1309 templates/js/translated/build.js:1740 -#: templates/js/translated/build.js:2160 templates/js/translated/build.js:2333 +#: templates/js/translated/build.js:1312 templates/js/translated/build.js:1743 +#: templates/js/translated/build.js:2162 templates/js/translated/build.js:2335 #: 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:1943 templates/js/translated/part.js:2015 +#: templates/js/translated/part.js:1944 templates/js/translated/part.js:2016 #: templates/js/translated/part.js:2324 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1304 -#: templates/js/translated/purchase_order.js:1849 -#: templates/js/translated/purchase_order.js:2008 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:710 +#: templates/js/translated/purchase_order.js:1848 +#: templates/js/translated/purchase_order.js:2007 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:709 #: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1197 -#: templates/js/translated/sales_order.js:1598 -#: templates/js/translated/sales_order.js:1796 +#: 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:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1996 +#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1997 #: templates/js/translated/stock.js:2857 templates/js/translated/stock.js:3090 #: templates/js/translated/stock.js:3236 msgid "Part" msgstr "Del" -#: build/models.py:213 +#: build/models.py:245 msgid "Select part to build" msgstr "Vælg dele til produktion" -#: build/models.py:218 +#: build/models.py:250 msgid "Sales Order Reference" msgstr "Salgsordrereference" -#: build/models.py:222 +#: build/models.py:254 msgid "SalesOrder to which this build is allocated" msgstr "Salgsordre, som er tildelt denne produktion" -#: build/models.py:227 build/serializers.py:964 -#: templates/js/translated/build.js:1728 -#: templates/js/translated/sales_order.js:1185 +#: build/models.py:259 build/serializers.py:999 +#: templates/js/translated/build.js:1731 +#: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Kilde Lokation" -#: build/models.py:231 +#: build/models.py:263 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:236 +#: build/models.py:268 msgid "Destination Location" msgstr "Destinations Placering" -#: build/models.py:240 +#: build/models.py:272 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:244 +#: build/models.py:276 msgid "Build Quantity" msgstr "Produktions antal" -#: build/models.py:247 +#: build/models.py:279 msgid "Number of stock items to build" msgstr "Antal lagervarer som skal produceres" -#: build/models.py:251 +#: build/models.py:283 msgid "Completed items" msgstr "Afsluttede elementer" -#: build/models.py:253 +#: build/models.py:285 msgid "Number of stock items which have been completed" msgstr "Antal lagervarer som er færdiggjort" -#: build/models.py:257 +#: build/models.py:289 msgid "Build Status" msgstr "Produktions Status" -#: build/models.py:261 +#: build/models.py:293 msgid "Build status code" msgstr "Produktions statuskode" -#: build/models.py:270 build/serializers.py:280 order/serializers.py:577 -#: stock/models.py:823 stock/serializers.py:1333 +#: build/models.py:302 build/serializers.py:286 order/serializers.py:580 +#: stock/models.py:838 stock/serializers.py:74 stock/serializers.py:1449 #: templates/js/translated/purchase_order.js:1129 msgid "Batch Code" msgstr "Batch Kode" -#: build/models.py:274 build/serializers.py:281 +#: build/models.py:306 build/serializers.py:287 msgid "Batch code for this build output" msgstr "Batch kode til dette produktions output" -#: build/models.py:277 order/models.py:304 part/models.py:1079 -#: part/templates/part/part_base.html:310 -#: templates/js/translated/return_order.js:339 -#: templates/js/translated/sales_order.js:827 +#: build/models.py:309 order/models.py:316 order/serializers.py:119 +#: part/models.py:1115 part/templates/part/part_base.html:310 +#: templates/js/translated/return_order.js:338 +#: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Oprettelsesdato" -#: build/models.py:281 +#: build/models.py:313 msgid "Target completion date" msgstr "Projekteret afslutningsdato" -#: build/models.py:282 +#: build/models.py:314 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:285 order/models.py:500 order/models.py:2041 -#: templates/js/translated/build.js:2245 +#: build/models.py:317 order/models.py:521 order/models.py:2065 +#: templates/js/translated/build.js:2247 msgid "Completion Date" msgstr "Dato for afslutning" -#: build/models.py:291 +#: build/models.py:323 msgid "completed by" msgstr "udført af" -#: build/models.py:299 templates/js/translated/build.js:2205 +#: build/models.py:331 templates/js/translated/build.js:2207 msgid "Issued by" msgstr "Udstedt af" -#: build/models.py:300 +#: build/models.py:332 msgid "User who issued this build order" msgstr "Bruger som udstedte denne byggeordre" -#: build/models.py:308 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:145 -#: order/models.py:322 order/templates/order/order_base.html:217 +#: build/models.py:340 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:147 +#: 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:228 part/models.py:1096 +#: order/templates/order/sales_order_base.html:232 part/models.py:1132 #: part/templates/part/part_base.html:390 -#: report/templates/report/inventree_build_order_base.html:158 +#: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2217 -#: templates/js/translated/purchase_order.js:1764 -#: templates/js/translated/return_order.js:359 +#: templates/js/translated/build.js:2219 +#: templates/js/translated/purchase_order.js:1763 +#: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Ansvarlig" -#: build/models.py:309 +#: build/models.py:341 msgid "User or group responsible for this build order" msgstr "Bruger eller gruppe ansvarlig for denne byggeordre" -#: build/models.py:314 build/templates/build/detail.html:108 +#: build/models.py:346 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:180 -#: part/templates/part/part_base.html:383 stock/models.py:819 +#: order/templates/order/sales_order_base.html:184 +#: part/templates/part/part_base.html:383 stock/models.py:834 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ekstern link" -#: build/models.py:319 +#: build/models.py:347 common/models.py:3178 part/models.py:956 +#: stock/models.py:834 +msgid "Link to external URL" +msgstr "Link til ekstern URL" + +#: build/models.py:351 msgid "Build Priority" msgstr "Bygge Prioritet" -#: build/models.py:322 +#: build/models.py:354 msgid "Priority of this build order" msgstr "Prioritet af denne byggeordre" -#: build/models.py:329 common/models.py:129 order/admin.py:18 -#: order/models.py:286 templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2142 -#: templates/js/translated/purchase_order.js:1711 -#: templates/js/translated/return_order.js:318 -#: templates/js/translated/sales_order.js:806 +#: build/models.py:361 common/models.py:131 order/admin.py:18 +#: order/models.py:298 templates/InvenTree/settings/settings_staff_js.html:146 +#: templates/js/translated/build.js:2144 +#: templates/js/translated/purchase_order.js:1710 +#: templates/js/translated/return_order.js:317 +#: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:330 +#: build/models.py:362 msgid "Project code for this build order" msgstr "" -#: build/models.py:581 +#: build/models.py:595 build/models.py:660 +msgid "Failed to offload task to complete build allocations" +msgstr "" + +#: build/models.py:617 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Bygningsordre {build} er fuldført" -#: build/models.py:587 +#: build/models.py:623 msgid "A build order has been completed" msgstr "En byggeordre er fuldført" -#: build/models.py:805 build/models.py:880 +#: build/models.py:849 build/models.py:934 msgid "No build output specified" msgstr "" -#: build/models.py:808 +#: build/models.py:852 msgid "Build output is already completed" msgstr "" -#: build/models.py:811 +#: build/models.py:855 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:884 build/serializers.py:223 build/serializers.py:262 -#: build/serializers.py:831 order/models.py:538 order/serializers.py:429 -#: order/serializers.py:572 part/serializers.py:1471 part/serializers.py:1871 -#: stock/models.py:662 stock/models.py:1474 stock/serializers.py:472 +#: build/models.py:938 build/serializers.py:219 build/serializers.py:268 +#: build/serializers.py:866 order/models.py:559 order/serializers.py:432 +#: order/serializers.py:575 part/serializers.py:1476 part/serializers.py:1876 +#: stock/models.py:677 stock/models.py:1495 stock/serializers.py:603 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:889 build/serializers.py:228 +#: build/models.py:943 build/serializers.py:224 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:946 build/serializers.py:533 +#: build/models.py:1003 build/serializers.py:547 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1308 +#: build/models.py:1344 +msgid "Build Order Line Item" +msgstr "" + +#: build/models.py:1369 msgid "Build object" msgstr "" -#: build/models.py:1322 build/models.py:1578 build/serializers.py:210 -#: build/serializers.py:247 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2516 -#: order/models.py:1259 order/models.py:1916 order/serializers.py:1335 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:416 -#: part/forms.py:48 part/models.py:3162 part/models.py:4035 +#: build/models.py:1383 build/models.py:1639 build/serializers.py:206 +#: build/serializers.py:253 build/templates/build/build_base.html:102 +#: build/templates/build/detail.html:34 common/models.py:2509 +#: order/models.py:1272 order/models.py:1931 order/serializers.py:1327 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 +#: part/forms.py:48 part/models.py:3170 part/models.py:4058 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 -#: report/templates/report/inventree_build_order_base.html:113 -#: report/templates/report/inventree_po_report_base.html:29 -#: report/templates/report/inventree_slr_report.html:104 -#: report/templates/report/inventree_so_report_base.html:29 -#: report/templates/report/inventree_test_report_base.html:90 -#: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:160 stock/serializers.py:463 +#: report/templates/report/inventree_build_order_report.html:113 +#: report/templates/report/inventree_purchase_order_report.html:29 +#: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_stock_location_report.html:104 +#: report/templates/report/inventree_test_report.html:90 +#: report/templates/report/inventree_test_report.html:170 stock/admin.py:159 +#: stock/serializers.py:125 stock/serializers.py:165 stock/serializers.py:594 #: 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:548 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:521 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1366 -#: templates/js/translated/build.js:1743 templates/js/translated/build.js:2355 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1369 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2357 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:961 -#: templates/js/translated/part.js:1811 templates/js/translated/part.js:3341 +#: templates/js/translated/model_renderers.js:236 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1812 templates/js/translated/part.js:3342 #: 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:1853 -#: templates/js/translated/purchase_order.js:2072 +#: templates/js/translated/purchase_order.js:1852 +#: templates/js/translated/purchase_order.js:2071 #: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1199 -#: templates/js/translated/sales_order.js:1518 -#: templates/js/translated/sales_order.js:1608 -#: templates/js/translated/sales_order.js:1698 -#: templates/js/translated/sales_order.js:1824 +#: 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:564 templates/js/translated/stock.js:702 #: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3021 #: templates/js/translated/stock.js:3104 msgid "Quantity" msgstr "" -#: build/models.py:1323 +#: build/models.py:1384 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1403 +#: build/models.py:1464 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1412 +#: build/models.py:1473 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1422 order/models.py:1867 +#: build/models.py:1483 order/models.py:1882 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1428 order/models.py:1870 +#: build/models.py:1489 order/models.py:1885 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1434 +#: build/models.py:1495 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1493 +#: build/models.py:1554 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1565 build/serializers.py:811 order/serializers.py:1179 -#: order/serializers.py:1200 stock/serializers.py:566 stock/serializers.py:1052 -#: stock/serializers.py:1164 stock/templates/stock/item_base.html:10 +#: build/models.py:1626 build/serializers.py:846 order/serializers.py:1171 +#: order/serializers.py:1192 stock/models.py:358 stock/serializers.py:91 +#: stock/serializers.py:697 stock/serializers.py:1168 stock/serializers.py:1280 +#: 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:1742 +#: templates/js/translated/build.js:1745 #: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1198 -#: templates/js/translated/sales_order.js:1499 -#: templates/js/translated/sales_order.js:1504 -#: templates/js/translated/sales_order.js:1605 -#: templates/js/translated/sales_order.js:1692 +#: 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:677 templates/js/translated/stock.js:843 #: templates/js/translated/stock.js:2977 msgid "Stock Item" msgstr "" -#: build/models.py:1566 +#: build/models.py:1627 msgid "Source stock item" msgstr "" -#: build/models.py:1579 +#: build/models.py:1640 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1587 +#: build/models.py:1648 msgid "Install into" msgstr "" -#: build/models.py:1588 +#: build/models.py:1649 msgid "Destination stock item" msgstr "" -#: build/serializers.py:160 build/serializers.py:840 -#: templates/js/translated/build.js:1319 +#: build/serializers.py:156 build/serializers.py:875 +#: templates/js/translated/build.js:1322 msgid "Build Output" msgstr "" -#: build/serializers.py:172 +#: build/serializers.py:168 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:176 +#: build/serializers.py:172 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:180 +#: build/serializers.py:176 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:191 +#: build/serializers.py:187 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:211 build/serializers.py:248 +#: build/serializers.py:207 build/serializers.py:254 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:269 +#: build/serializers.py:275 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:272 +#: build/serializers.py:278 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:287 order/serializers.py:585 order/serializers.py:1339 -#: stock/serializers.py:483 templates/js/translated/purchase_order.js:1153 +#: build/serializers.py:293 order/serializers.py:588 order/serializers.py:1331 +#: stock/serializers.py:614 templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:294 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:301 -msgid "Auto Allocate Serial Numbers" -msgstr "" - -#: build/serializers.py:302 -msgid "Automatically allocate required items with matching serial numbers" -msgstr "" - -#: build/serializers.py:337 stock/api.py:995 -msgid "The following serial numbers already exist or are invalid" -msgstr "" - -#: build/serializers.py:388 build/serializers.py:450 build/serializers.py:539 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:426 build/serializers.py:498 order/serializers.py:561 -#: order/serializers.py:669 order/serializers.py:1675 part/serializers.py:1127 -#: stock/serializers.py:494 stock/serializers.py:654 stock/serializers.py:750 -#: stock/serializers.py:1196 stock/serializers.py:1452 -#: stock/templates/stock/item_base.html:394 +#: build/serializers.py:299 build/serializers.py:440 build/serializers.py:512 +#: order/serializers.py:564 order/serializers.py:672 order/serializers.py:1656 +#: part/serializers.py:1132 stock/serializers.py:100 stock/serializers.py:625 +#: stock/serializers.py:785 stock/serializers.py:881 stock/serializers.py:1312 +#: stock/serializers.py:1568 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 -#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:999 -#: templates/js/translated/build.js:2370 +#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:1001 +#: templates/js/translated/build.js:2372 #: templates/js/translated/purchase_order.js:1178 #: templates/js/translated/purchase_order.js:1268 -#: templates/js/translated/sales_order.js:1511 -#: templates/js/translated/sales_order.js:1619 -#: templates/js/translated/sales_order.js:1627 -#: templates/js/translated/sales_order.js:1706 +#: 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:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2201 #: templates/js/translated/stock.js:2871 msgid "Location" msgstr "" -#: build/serializers.py:427 +#: build/serializers.py:300 +msgid "Stock location for build output" +msgstr "" + +#: build/serializers.py:314 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:315 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:330 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/serializers.py:355 stock/api.py:1025 +msgid "The following serial numbers already exist or are invalid" +msgstr "" + +#: build/serializers.py:402 build/serializers.py:464 build/serializers.py:553 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:441 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:433 +#: build/serializers.py:447 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:434 +#: build/serializers.py:448 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:439 +#: build/serializers.py:453 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:499 +#: build/serializers.py:513 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:505 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:922 -#: order/models.py:2020 order/serializers.py:593 stock/admin.py:165 -#: stock/serializers.py:801 stock/serializers.py:1340 +#: build/serializers.py:519 build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:62 order/models.py:950 +#: order/models.py:2044 order/serializers.py:596 stock/admin.py:164 +#: stock/serializers.py:932 stock/serializers.py:1456 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2189 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2191 #: templates/js/translated/purchase_order.js:1308 -#: templates/js/translated/purchase_order.js:1723 -#: templates/js/translated/return_order.js:331 -#: templates/js/translated/sales_order.js:819 -#: templates/js/translated/stock.js:2175 templates/js/translated/stock.js:2995 +#: templates/js/translated/purchase_order.js:1722 +#: templates/js/translated/return_order.js:330 +#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/stock.js:2176 templates/js/translated/stock.js:2995 #: templates/js/translated/stock.js:3120 msgid "Status" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:525 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:526 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:592 -msgid "Remove Allocated Stock" +#: build/serializers.py:611 +msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:593 -msgid "Subtract any stock which has already been allocated to this build" +#: build/serializers.py:612 +msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:599 +#: build/serializers.py:618 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:600 +#: build/serializers.py:619 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:627 +#: build/serializers.py:646 msgid "Not permitted" msgstr "Ikke tilladt" -#: build/serializers.py:628 +#: build/serializers.py:647 msgid "Accept as consumed by this build order" msgstr "Accepter som forbrugt af denne byggeordre" -#: build/serializers.py:629 +#: build/serializers.py:648 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:678 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:653 +#: build/serializers.py:680 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:663 +#: build/serializers.py:690 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:668 +#: build/serializers.py:695 msgid "Accept Unallocated" msgstr "Accepter Ikke tildelt" -#: build/serializers.py:669 +#: build/serializers.py:696 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:679 templates/js/translated/build.js:315 +#: build/serializers.py:706 templates/js/translated/build.js:315 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:684 order/serializers.py:297 order/serializers.py:1242 +#: build/serializers.py:711 order/serializers.py:300 order/serializers.py:1234 msgid "Accept Incomplete" msgstr "Accepter ufuldført" -#: build/serializers.py:685 +#: build/serializers.py:712 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:695 templates/js/translated/build.js:319 +#: build/serializers.py:722 templates/js/translated/build.js:319 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:704 templates/js/translated/build.js:303 +#: build/serializers.py:731 templates/js/translated/build.js:303 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:734 +#: build/serializers.py:769 msgid "Build Line" msgstr "Bygge linje" -#: build/serializers.py:744 +#: build/serializers.py:779 msgid "Build output" msgstr "" -#: build/serializers.py:752 +#: build/serializers.py:787 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:788 +#: build/serializers.py:823 msgid "Build Line Item" msgstr "" -#: build/serializers.py:802 +#: build/serializers.py:837 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:817 stock/serializers.py:1065 +#: build/serializers.py:852 stock/serializers.py:1181 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:865 order/serializers.py:1233 +#: build/serializers.py:900 order/serializers.py:1225 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:871 +#: build/serializers.py:906 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:878 +#: build/serializers.py:913 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:902 order/serializers.py:1485 +#: build/serializers.py:937 order/serializers.py:1477 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:965 +#: build/serializers.py:1000 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:973 +#: build/serializers.py:1008 msgid "Exclude Location" msgstr "" -#: build/serializers.py:974 +#: build/serializers.py:1009 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:979 +#: build/serializers.py:1014 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:980 +#: build/serializers.py:1015 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:985 +#: build/serializers.py:1020 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:986 +#: build/serializers.py:1021 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:991 +#: build/serializers.py:1026 msgid "Optional Items" msgstr "" -#: build/serializers.py:992 +#: build/serializers.py:1027 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1097 part/models.py:3930 part/models.py:4366 -#: stock/api.py:758 +#: build/serializers.py:1049 +msgid "Failed to start auto-allocation task" +msgstr "" + +#: build/serializers.py:1139 part/models.py:3953 part/models.py:4387 +#: stock/api.py:788 msgid "BOM Item" msgstr "" -#: build/serializers.py:1106 templates/js/translated/index.js:130 +#: build/serializers.py:1148 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1111 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:817 part/serializers.py:1489 +#: build/serializers.py:1153 part/admin.py:132 part/bom.py:173 +#: part/serializers.py:820 part/serializers.py:1494 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2614 templates/js/translated/part.js:709 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/build.js:2613 templates/js/translated/part.js:710 +#: templates/js/translated/part.js:2149 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1116 part/serializers.py:1491 -#: templates/js/translated/build.js:2618 +#: build/serializers.py:1158 part/serializers.py:1496 +#: templates/js/translated/build.js:2617 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1121 part/bom.py:172 part/serializers.py:1514 +#: build/serializers.py:1163 part/bom.py:172 part/serializers.py:1519 #: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1893 +#: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/tasks.py:172 +#: 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 +msgid "Pending" +msgstr "Afventende" + +#: build/status_codes.py:12 +msgid "Production" +msgstr "Produktion" + +#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 +#: order/status_codes.py:70 +msgid "Cancelled" +msgstr "Annulleret" + +#: build/status_codes.py:14 generic/states/tests.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 +msgid "Complete" +msgstr "Fuldført" + +#: build/tasks.py:184 msgid "Stock required for build order" msgstr "" -#: build/tasks.py:189 +#: build/tasks.py:201 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:194 +#: build/tasks.py:206 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" @@ -1822,18 +1590,18 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:297 -#: order/models.py:1294 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:309 +#: order/models.py:1307 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:192 -#: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2237 templates/js/translated/part.js:1830 -#: templates/js/translated/purchase_order.js:1740 -#: templates/js/translated/purchase_order.js:2148 -#: templates/js/translated/return_order.js:347 -#: templates/js/translated/return_order.js:751 -#: templates/js/translated/sales_order.js:835 -#: templates/js/translated/sales_order.js:1867 +#: order/templates/order/sales_order_base.html:196 +#: report/templates/report/inventree_build_order_report.html:125 +#: templates/js/translated/build.js:2239 templates/js/translated/part.js:1831 +#: templates/js/translated/purchase_order.js:1739 +#: templates/js/translated/purchase_order.js:2147 +#: templates/js/translated/return_order.js:346 +#: templates/js/translated/return_order.js:750 +#: templates/js/translated/sales_order.js:871 +#: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" @@ -1846,7 +1614,7 @@ msgstr "" #: 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:122 +#: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 #: templates/js/translated/table_filters.js:524 #: templates/js/translated/table_filters.js:626 @@ -1860,42 +1628,42 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1507 order/models.py:1536 -#: order/models.py:1650 order/models.py:1804 +#: build/templates/build/detail.html:101 order/api.py:1463 order/models.py:845 +#: order/models.py:1551 order/models.py:1665 order/models.py:1819 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 -#: report/templates/report/inventree_build_order_base.html:135 -#: report/templates/report/inventree_so_report_base.html:14 +#: report/templates/report/inventree_build_order_report.html:135 +#: report/templates/report/inventree_sales_order_report.html:14 #: stock/templates/stock/item_base.html:369 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:769 -#: templates/js/translated/sales_order.js:992 +#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:1028 #: templates/js/translated/stock.js:2924 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:197 #: build/templates/build/detail.html:115 -#: report/templates/report/inventree_build_order_base.html:152 +#: 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:2154 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2156 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:273 +#: build/templates/build/build_base.html:269 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:283 +#: build/templates/build/build_base.html:279 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:295 +#: build/templates/build/build_base.html:291 msgid "Link Barcode to Build Order" msgstr "" @@ -1911,8 +1679,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1430 -#: templates/js/translated/purchase_order.js:2190 +#: build/templates/build/detail.html:49 order/models.py:1443 +#: templates/js/translated/purchase_order.js:2189 msgid "Destination" msgstr "" @@ -1924,12 +1692,12 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:163 +#: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1377 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/build.js:1380 +#: templates/js/translated/model_renderers.js:241 #: templates/js/translated/purchase_order.js:1274 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:2190 #: templates/js/translated/stock.js:3127 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 @@ -1939,8 +1707,8 @@ 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:186 -#: templates/js/translated/build.js:2197 +#: order/templates/order/sales_order_base.html:190 +#: templates/js/translated/build.js:2199 msgid "Created" msgstr "" @@ -1949,7 +1717,7 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:202 +#: order/templates/order/sales_order_base.html:206 #: templates/js/translated/table_filters.js:689 msgid "Completed" msgstr "" @@ -2043,11 +1811,11 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:434 +#: build/templates/build/detail.html:426 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:435 +#: build/templates/build/detail.html:427 msgid "All lines have been fully allocated" msgstr "" @@ -2063,6 +1831,34 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: common/api.py:689 +msgid "Is Link" +msgstr "" + +#: common/api.py:697 +msgid "Is File" +msgstr "" + +#: common/api.py:739 +msgid "User does not have permission to delete this attachment" +msgstr "" + +#: common/currency.py:130 +msgid "Invalid currency code" +msgstr "" + +#: common/currency.py:132 +msgid "Duplicate currency code" +msgstr "" + +#: common/currency.py:137 +msgid "No valid currency codes provided" +msgstr "" + +#: common/currency.py:154 +msgid "No plugin" +msgstr "" + #: common/files.py:63 #, python-brace-format msgid "Unsupported file format: {fmt}" @@ -2101,27 +1897,27 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:71 +#: common/models.py:73 msgid "Updated" msgstr "" -#: common/models.py:72 +#: common/models.py:74 msgid "Timestamp of last update" msgstr "" -#: common/models.py:105 +#: common/models.py:107 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Unique project code" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Project description" msgstr "" -#: common/models.py:146 +#: common/models.py:148 msgid "User or group responsible for this project" msgstr "" @@ -2153,1430 +1949,1460 @@ msgstr "" msgid "No group" msgstr "" -#: common/models.py:1157 -msgid "An empty domain is not allowed." -msgstr "" - -#: common/models.py:1159 -#, python-brace-format -msgid "Invalid domain name: {domain}" -msgstr "" - -#: common/models.py:1171 -msgid "No plugin" -msgstr "" - -#: common/models.py:1259 +#: common/models.py:1213 msgid "Restart required" msgstr "" -#: common/models.py:1261 +#: common/models.py:1215 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1268 +#: common/models.py:1222 msgid "Pending migrations" msgstr "" -#: common/models.py:1269 +#: common/models.py:1223 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1274 +#: common/models.py:1228 msgid "Server Instance Name" msgstr "" -#: common/models.py:1276 +#: common/models.py:1230 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1280 +#: common/models.py:1234 msgid "Use instance name" msgstr "" -#: common/models.py:1281 +#: common/models.py:1235 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1286 +#: common/models.py:1240 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1287 +#: common/models.py:1241 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1292 company/models.py:108 company/models.py:109 +#: common/models.py:1246 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1293 +#: common/models.py:1247 msgid "Internal company name" msgstr "" -#: common/models.py:1297 +#: common/models.py:1251 msgid "Base URL" msgstr "" -#: common/models.py:1298 +#: common/models.py:1252 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1304 +#: common/models.py:1258 msgid "Default Currency" msgstr "" -#: common/models.py:1305 +#: common/models.py:1259 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1311 +#: common/models.py:1265 +msgid "Supported Currencies" +msgstr "" + +#: common/models.py:1266 +msgid "List of supported currency codes" +msgstr "" + +#: common/models.py:1272 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1313 +#: common/models.py:1274 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1316 common/models.py:1372 common/models.py:1385 -#: common/models.py:1393 common/models.py:1402 common/models.py:1411 -#: common/models.py:1613 common/models.py:1635 common/models.py:1750 -#: common/models.py:2053 +#: common/models.py:1277 common/models.py:1333 common/models.py:1346 +#: common/models.py:1354 common/models.py:1363 common/models.py:1372 +#: common/models.py:1590 common/models.py:1612 common/models.py:1727 +#: common/models.py:2046 msgid "days" msgstr "" -#: common/models.py:1320 +#: common/models.py:1281 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1321 +#: common/models.py:1282 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1326 +#: common/models.py:1287 msgid "Download from URL" msgstr "" -#: common/models.py:1328 +#: common/models.py:1289 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1334 +#: common/models.py:1295 msgid "Download Size Limit" msgstr "" -#: common/models.py:1335 +#: common/models.py:1296 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1341 +#: common/models.py:1302 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1343 +#: common/models.py:1304 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:1348 +#: common/models.py:1309 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1349 +#: common/models.py:1310 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1354 +#: common/models.py:1315 msgid "Require confirm" msgstr "" -#: common/models.py:1355 +#: common/models.py:1316 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1360 +#: common/models.py:1321 msgid "Tree Depth" msgstr "" -#: common/models.py:1362 +#: common/models.py:1323 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1368 +#: common/models.py:1329 msgid "Update Check Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1330 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1375 +#: common/models.py:1336 msgid "Automatic Backup" msgstr "" -#: common/models.py:1376 +#: common/models.py:1337 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1381 +#: common/models.py:1342 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1382 +#: common/models.py:1343 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1388 +#: common/models.py:1349 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1390 +#: common/models.py:1351 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1397 +#: common/models.py:1358 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1399 +#: common/models.py:1360 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1406 +#: common/models.py:1367 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1408 +#: common/models.py:1369 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1415 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1376 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1416 +#: common/models.py:1377 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1421 +#: common/models.py:1382 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1422 +#: common/models.py:1383 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1428 +#: common/models.py:1389 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1429 +#: common/models.py:1390 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1434 +#: common/models.py:1395 msgid "Part Revisions" msgstr "" -#: common/models.py:1435 +#: common/models.py:1396 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1401 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1402 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1407 msgid "IPN Regex" msgstr "" -#: common/models.py:1441 +#: common/models.py:1408 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1444 +#: common/models.py:1411 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1445 +#: common/models.py:1412 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1450 +#: common/models.py:1417 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1451 +#: common/models.py:1418 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1456 +#: common/models.py:1423 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1457 +#: common/models.py:1424 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1462 +#: common/models.py:1429 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1463 +#: common/models.py:1430 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1468 +#: common/models.py:1435 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1469 +#: common/models.py:1436 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1474 +#: common/models.py:1441 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1475 +#: common/models.py:1442 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1480 part/admin.py:108 part/models.py:3772 -#: report/models.py:182 stock/serializers.py:99 +#: common/models.py:1447 part/admin.py:108 part/models.py:3795 +#: report/models.py:294 report/models.py:361 report/serializers.py:90 +#: report/serializers.py:131 stock/serializers.py:227 #: templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:767 msgid "Template" msgstr "" -#: common/models.py:1481 +#: common/models.py:1448 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1486 part/admin.py:91 part/admin.py:431 part/models.py:1016 +#: common/models.py:1453 part/admin.py:91 part/admin.py:425 part/models.py:1052 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:721 msgid "Assembly" msgstr "" -#: common/models.py:1487 +#: common/models.py:1454 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1492 part/admin.py:95 part/models.py:1022 +#: common/models.py:1459 part/admin.py:95 part/models.py:1058 #: templates/js/translated/table_filters.js:729 msgid "Component" msgstr "" -#: common/models.py:1493 +#: common/models.py:1460 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1498 part/admin.py:100 part/models.py:1034 +#: common/models.py:1465 part/admin.py:100 part/models.py:1070 msgid "Purchaseable" msgstr "" -#: common/models.py:1499 +#: common/models.py:1466 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1504 part/admin.py:104 part/models.py:1040 +#: common/models.py:1471 part/admin.py:104 part/models.py:1076 #: templates/js/translated/table_filters.js:755 msgid "Salable" msgstr "" -#: common/models.py:1505 +#: common/models.py:1472 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1510 part/admin.py:113 part/models.py:1028 +#: common/models.py:1477 part/admin.py:113 part/models.py:1064 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:771 msgid "Trackable" msgstr "" -#: common/models.py:1511 +#: common/models.py:1478 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1516 part/admin.py:117 part/models.py:1050 +#: common/models.py:1483 part/admin.py:117 part/models.py:1086 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:775 msgid "Virtual" msgstr "" -#: common/models.py:1517 +#: common/models.py:1484 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1522 +#: common/models.py:1489 msgid "Show Import in Views" msgstr "" -#: common/models.py:1523 +#: common/models.py:1490 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1528 +#: common/models.py:1495 msgid "Show related parts" msgstr "" -#: common/models.py:1529 +#: common/models.py:1496 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1534 +#: common/models.py:1501 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1535 +#: common/models.py:1502 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1540 templates/js/translated/part.js:107 +#: common/models.py:1507 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1542 +#: common/models.py:1509 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1548 +#: common/models.py:1515 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1549 +#: common/models.py:1516 msgid "Format to display the part name" msgstr "" -#: common/models.py:1555 +#: common/models.py:1522 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1556 +#: common/models.py:1523 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1560 +#: common/models.py:1527 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1562 +#: common/models.py:1529 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1568 +#: common/models.py:1535 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1570 +#: common/models.py:1537 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1576 +#: common/models.py:1548 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1578 +#: common/models.py:1550 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1584 +#: common/models.py:1561 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1586 +#: common/models.py:1563 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1592 +#: common/models.py:1569 msgid "Purchase History Override" msgstr "" -#: common/models.py:1594 +#: common/models.py:1571 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1600 +#: common/models.py:1577 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1602 +#: common/models.py:1579 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1608 +#: common/models.py:1585 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1610 +#: common/models.py:1587 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1594 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1618 +#: common/models.py:1595 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1623 +#: common/models.py:1600 msgid "Active Variants Only" msgstr "" -#: common/models.py:1625 +#: common/models.py:1602 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1631 +#: common/models.py:1608 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1633 +#: common/models.py:1610 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1640 +#: common/models.py:1617 msgid "Internal Prices" msgstr "" -#: common/models.py:1641 +#: common/models.py:1618 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1646 +#: common/models.py:1623 msgid "Internal Price Override" msgstr "" -#: common/models.py:1648 +#: common/models.py:1625 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1654 +#: common/models.py:1631 msgid "Enable label printing" msgstr "" -#: common/models.py:1655 +#: common/models.py:1632 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1660 +#: common/models.py:1637 msgid "Label Image DPI" msgstr "" -#: common/models.py:1662 +#: common/models.py:1639 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1668 +#: common/models.py:1645 msgid "Enable Reports" msgstr "" -#: common/models.py:1669 +#: common/models.py:1646 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1674 templates/stats.html:25 +#: common/models.py:1651 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1675 +#: common/models.py:1652 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1680 +#: common/models.py:1657 msgid "Log Report Errors" msgstr "" -#: common/models.py:1681 +#: common/models.py:1658 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1686 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:203 +#: common/models.py:1663 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1687 +#: common/models.py:1664 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1669 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1693 +#: common/models.py:1670 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1698 +#: common/models.py:1675 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1700 +#: common/models.py:1677 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1706 +#: common/models.py:1683 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1707 +#: common/models.py:1684 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1712 +#: common/models.py:1689 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1713 +#: common/models.py:1690 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1718 +#: common/models.py:1695 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1720 +#: common/models.py:1697 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1726 +#: common/models.py:1703 msgid "Batch Code Template" msgstr "" -#: common/models.py:1728 +#: common/models.py:1705 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1733 +#: common/models.py:1710 msgid "Stock Expiry" msgstr "" -#: common/models.py:1734 +#: common/models.py:1711 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1739 +#: common/models.py:1716 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1740 +#: common/models.py:1717 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1745 +#: common/models.py:1722 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1747 +#: common/models.py:1724 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1754 +#: common/models.py:1731 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1755 +#: common/models.py:1732 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1760 +#: common/models.py:1737 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1761 +#: common/models.py:1738 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1743 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1767 +#: common/models.py:1744 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1771 +#: common/models.py:1748 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1772 +#: common/models.py:1749 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1777 +#: common/models.py:1754 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1779 +#: common/models.py:1756 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1785 +#: common/models.py:1762 +msgid "Allow Out of Stock Transfer" +msgstr "" + +#: common/models.py:1764 +msgid "Allow stock items which are not in stock to be transferred between stock locations" +msgstr "" + +#: common/models.py:1770 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1787 +#: common/models.py:1772 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1793 common/models.py:1821 common/models.py:1843 -#: common/models.py:1871 +#: common/models.py:1778 common/models.py:1806 common/models.py:1828 +#: common/models.py:1864 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1794 common/models.py:1822 common/models.py:1844 -#: common/models.py:1872 +#: common/models.py:1779 common/models.py:1807 common/models.py:1829 +#: common/models.py:1865 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1799 +#: common/models.py:1784 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1801 +#: common/models.py:1786 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1807 +#: common/models.py:1792 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1808 +#: common/models.py:1793 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1813 +#: common/models.py:1798 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1815 +#: common/models.py:1800 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1827 +#: common/models.py:1812 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1829 +#: common/models.py:1814 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1835 +#: common/models.py:1820 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1822 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1834 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1850 +#: common/models.py:1835 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1855 +#: common/models.py:1840 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1857 +#: common/models.py:1842 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1863 +#: common/models.py:1848 +msgid "Mark Shipped Orders as Complete" +msgstr "" + +#: common/models.py:1850 +msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" +msgstr "" + +#: common/models.py:1856 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1865 +#: common/models.py:1858 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1877 +#: common/models.py:1870 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1872 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1878 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1887 +#: common/models.py:1880 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1894 +#: common/models.py:1887 msgid "Enable password forgot" msgstr "" -#: common/models.py:1895 +#: common/models.py:1888 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1900 +#: common/models.py:1893 msgid "Enable registration" msgstr "" -#: common/models.py:1901 +#: common/models.py:1894 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1906 +#: common/models.py:1899 msgid "Enable SSO" msgstr "" -#: common/models.py:1907 +#: common/models.py:1900 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1912 +#: common/models.py:1905 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1914 +#: common/models.py:1907 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1920 +#: common/models.py:1913 msgid "Email required" msgstr "" -#: common/models.py:1921 +#: common/models.py:1914 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1926 +#: common/models.py:1919 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1928 +#: common/models.py:1921 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1934 +#: common/models.py:1927 msgid "Mail twice" msgstr "" -#: common/models.py:1935 +#: common/models.py:1928 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1940 +#: common/models.py:1933 msgid "Password twice" msgstr "" -#: common/models.py:1941 +#: common/models.py:1934 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1946 +#: common/models.py:1939 msgid "Allowed domains" msgstr "" -#: common/models.py:1948 +#: common/models.py:1941 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1954 +#: common/models.py:1947 msgid "Group on signup" msgstr "" -#: common/models.py:1955 +#: common/models.py:1948 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:1953 msgid "Enforce MFA" msgstr "" -#: common/models.py:1961 +#: common/models.py:1954 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1966 +#: common/models.py:1959 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1968 +#: common/models.py:1961 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1976 +#: common/models.py:1969 msgid "Check for plugin updates" msgstr "" -#: common/models.py:1977 +#: common/models.py:1970 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:1983 +#: common/models.py:1976 msgid "Enable URL integration" msgstr "" -#: common/models.py:1984 +#: common/models.py:1977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1990 +#: common/models.py:1983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1991 +#: common/models.py:1984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1997 +#: common/models.py:1990 msgid "Enable app integration" msgstr "" -#: common/models.py:1998 +#: common/models.py:1991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2004 +#: common/models.py:1997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2005 +#: common/models.py:1998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2011 +#: common/models.py:2004 msgid "Enable event integration" msgstr "" -#: common/models.py:2012 +#: common/models.py:2005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2018 +#: common/models.py:2011 msgid "Enable project codes" msgstr "" -#: common/models.py:2019 +#: common/models.py:2012 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2024 +#: common/models.py:2017 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2026 +#: common/models.py:2019 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2032 +#: common/models.py:2025 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2034 +#: common/models.py:2027 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2040 +#: common/models.py:2033 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2042 +#: common/models.py:2035 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2048 +#: common/models.py:2041 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2050 +#: common/models.py:2043 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2057 +#: common/models.py:2050 msgid "Display Users full names" msgstr "" -#: common/models.py:2058 +#: common/models.py:2051 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2063 +#: common/models.py:2056 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2064 +#: common/models.py:2057 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2076 common/models.py:2486 +#: common/models.py:2069 common/models.py:2479 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2119 +#: common/models.py:2112 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2121 +#: common/models.py:2114 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2127 +#: common/models.py:2120 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2128 +#: common/models.py:2121 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2133 +#: common/models.py:2126 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2134 +#: common/models.py:2127 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2139 +#: common/models.py:2132 msgid "Show latest parts" msgstr "" -#: common/models.py:2140 +#: common/models.py:2133 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2145 +#: common/models.py:2138 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2146 +#: common/models.py:2139 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2151 +#: common/models.py:2144 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2152 +#: common/models.py:2145 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2157 +#: common/models.py:2150 msgid "Show low stock" msgstr "" -#: common/models.py:2158 +#: common/models.py:2151 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2163 +#: common/models.py:2156 msgid "Show depleted stock" msgstr "" -#: common/models.py:2164 +#: common/models.py:2157 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2169 +#: common/models.py:2162 msgid "Show needed stock" msgstr "" -#: common/models.py:2170 +#: common/models.py:2163 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2175 +#: common/models.py:2168 msgid "Show expired stock" msgstr "" -#: common/models.py:2176 +#: common/models.py:2169 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2181 +#: common/models.py:2174 msgid "Show stale stock" msgstr "" -#: common/models.py:2182 +#: common/models.py:2175 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2187 +#: common/models.py:2180 msgid "Show pending builds" msgstr "" -#: common/models.py:2188 +#: common/models.py:2181 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2193 +#: common/models.py:2186 msgid "Show overdue builds" msgstr "" -#: common/models.py:2194 +#: common/models.py:2187 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2199 +#: common/models.py:2192 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2200 +#: common/models.py:2193 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2205 +#: common/models.py:2198 msgid "Show overdue POs" msgstr "" -#: common/models.py:2206 +#: common/models.py:2199 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2211 +#: common/models.py:2204 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2212 +#: common/models.py:2205 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2217 +#: common/models.py:2210 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2218 +#: common/models.py:2211 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2223 +#: common/models.py:2216 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2224 +#: common/models.py:2217 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2229 +#: common/models.py:2222 msgid "Show News" msgstr "" -#: common/models.py:2230 +#: common/models.py:2223 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2235 +#: common/models.py:2228 msgid "Inline label display" msgstr "" -#: common/models.py:2237 +#: common/models.py:2230 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2243 +#: common/models.py:2236 msgid "Default label printer" msgstr "" -#: common/models.py:2245 +#: common/models.py:2238 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2251 +#: common/models.py:2244 msgid "Inline report display" msgstr "" -#: common/models.py:2253 +#: common/models.py:2246 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2259 +#: common/models.py:2252 msgid "Search Parts" msgstr "" -#: common/models.py:2260 +#: common/models.py:2253 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2265 +#: common/models.py:2258 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2266 +#: common/models.py:2259 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2271 +#: common/models.py:2264 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2272 +#: common/models.py:2265 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2277 +#: common/models.py:2270 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2278 +#: common/models.py:2271 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2283 +#: common/models.py:2276 msgid "Search Categories" msgstr "" -#: common/models.py:2284 +#: common/models.py:2277 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2289 +#: common/models.py:2282 msgid "Search Stock" msgstr "" -#: common/models.py:2290 +#: common/models.py:2283 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2295 +#: common/models.py:2288 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2297 +#: common/models.py:2290 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2303 +#: common/models.py:2296 msgid "Search Locations" msgstr "" -#: common/models.py:2304 +#: common/models.py:2297 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2309 +#: common/models.py:2302 msgid "Search Companies" msgstr "" -#: common/models.py:2310 +#: common/models.py:2303 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2315 +#: common/models.py:2308 msgid "Search Build Orders" msgstr "" -#: common/models.py:2316 +#: common/models.py:2309 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2321 +#: common/models.py:2314 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2322 +#: common/models.py:2315 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2327 +#: common/models.py:2320 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2329 +#: common/models.py:2322 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2328 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2336 +#: common/models.py:2329 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2334 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2343 +#: common/models.py:2336 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2349 +#: common/models.py:2342 msgid "Search Return Orders" msgstr "" -#: common/models.py:2350 +#: common/models.py:2343 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2355 +#: common/models.py:2348 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2357 +#: common/models.py:2350 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2363 +#: common/models.py:2356 msgid "Search Preview Results" msgstr "" -#: common/models.py:2365 +#: common/models.py:2358 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2371 +#: common/models.py:2364 msgid "Regex Search" msgstr "" -#: common/models.py:2372 +#: common/models.py:2365 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2377 +#: common/models.py:2370 msgid "Whole Word Search" msgstr "" -#: common/models.py:2378 +#: common/models.py:2371 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2383 +#: common/models.py:2376 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2384 +#: common/models.py:2377 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2389 +#: common/models.py:2382 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2390 +#: common/models.py:2383 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2395 +#: common/models.py:2388 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2396 +#: common/models.py:2389 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2401 +#: common/models.py:2394 msgid "Date Format" msgstr "" -#: common/models.py:2402 +#: common/models.py:2395 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2415 part/templates/part/detail.html:41 +#: common/models.py:2408 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2416 +#: common/models.py:2409 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2421 part/templates/part/detail.html:62 +#: common/models.py:2414 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2423 +#: common/models.py:2416 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2429 +#: common/models.py:2422 msgid "Table String Length" msgstr "" -#: common/models.py:2431 +#: common/models.py:2424 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2437 +#: common/models.py:2430 msgid "Default part label template" msgstr "" -#: common/models.py:2438 +#: common/models.py:2431 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2443 +#: common/models.py:2436 msgid "Default stock item template" msgstr "" -#: common/models.py:2445 +#: common/models.py:2438 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2451 +#: common/models.py:2444 msgid "Default stock location label template" msgstr "" -#: common/models.py:2453 +#: common/models.py:2446 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2459 +#: common/models.py:2452 msgid "Default build line label template" msgstr "" -#: common/models.py:2461 +#: common/models.py:2454 msgid "The build line label template to be automatically selected" msgstr "" -#: common/models.py:2467 +#: common/models.py:2460 msgid "Receive error reports" msgstr "" -#: common/models.py:2468 +#: common/models.py:2461 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2473 +#: common/models.py:2466 msgid "Last used printing machines" msgstr "" -#: common/models.py:2474 +#: common/models.py:2467 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2517 +#: common/models.py:2487 common/models.py:2488 common/models.py:2636 +#: common/models.py:2637 common/models.py:2882 common/models.py:2883 +#: common/models.py:3193 common/models.py:3194 part/models.py:3193 +#: part/models.py:3280 part/models.py:3353 part/models.py:3381 +#: plugin/models.py:274 plugin/models.py:275 +#: report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3036 users/models.py:111 +msgid "User" +msgstr "Bruger" + +#: common/models.py:2510 msgid "Price break quantity" msgstr "" -#: common/models.py:2524 company/serializers.py:496 order/admin.py:42 -#: order/models.py:1333 order/models.py:2241 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1885 +#: common/models.py:2517 company/serializers.py:472 order/admin.py:42 +#: order/models.py:1346 order/models.py:2265 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1886 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:741 +#: templates/js/translated/return_order.js:740 msgid "Price" msgstr "" -#: common/models.py:2525 +#: common/models.py:2518 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2696 common/models.py:2881 +#: common/models.py:2613 common/models.py:2798 msgid "Endpoint" msgstr "" -#: common/models.py:2697 +#: common/models.py:2614 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2707 +#: common/models.py:2624 msgid "Name for this webhook" msgstr "" -#: common/models.py:2711 company/models.py:160 company/models.py:813 -#: machine/models.py:39 part/admin.py:88 part/models.py:1045 -#: plugin/models.py:56 templates/js/translated/company.js:523 +#: common/models.py:2628 company/models.py:163 company/models.py:782 +#: machine/models.py:39 part/admin.py:88 part/models.py:1081 +#: 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 @@ -3586,138 +3412,210 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:2711 +#: common/models.py:2628 msgid "Is this webhook active" msgstr "" -#: common/models.py:2727 users/models.py:159 +#: common/models.py:2644 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2728 +#: common/models.py:2645 msgid "Token for access" msgstr "" -#: common/models.py:2736 +#: common/models.py:2653 msgid "Secret" msgstr "" -#: common/models.py:2737 +#: common/models.py:2654 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2845 +#: common/models.py:2762 msgid "Message ID" msgstr "" -#: common/models.py:2846 +#: common/models.py:2763 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2854 +#: common/models.py:2771 msgid "Host" msgstr "" -#: common/models.py:2855 +#: common/models.py:2772 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2863 +#: common/models.py:2780 msgid "Header" msgstr "" -#: common/models.py:2864 +#: common/models.py:2781 msgid "Header of this message" msgstr "" -#: common/models.py:2871 +#: common/models.py:2788 msgid "Body" msgstr "" -#: common/models.py:2872 +#: common/models.py:2789 msgid "Body of this message" msgstr "" -#: common/models.py:2882 +#: common/models.py:2799 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2887 +#: common/models.py:2804 msgid "Worked on" msgstr "" -#: common/models.py:2888 +#: common/models.py:2805 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3014 +#: common/models.py:2931 msgid "Id" msgstr "" -#: common/models.py:3016 templates/js/translated/company.js:965 +#: common/models.py:2933 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:60 +#: common/models.py:2935 common/models.py:3177 company/models.py:149 +#: company/models.py:440 company/models.py:500 company/models.py:799 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 +#: part/admin.py:55 part/models.py:955 +#: 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:2456 +#: templates/js/translated/purchase_order.js:2040 +#: templates/js/translated/purchase_order.js:2204 +#: templates/js/translated/return_order.js:779 +#: templates/js/translated/sales_order.js:1092 +#: templates/js/translated/sales_order.js:2023 +msgid "Link" +msgstr "" + +#: common/models.py:2937 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3022 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2939 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:3024 templates/js/translated/news.js:52 +#: common/models.py:2941 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Read" msgstr "" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Was this news item read?" msgstr "" -#: common/models.py:3044 company/models.py:156 part/models.py:929 +#: common/models.py:2961 company/models.py:159 part/models.py:965 #: 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_base.html:35 +#: report/templates/report/inventree_return_order_report.html:35 #: stock/templates/stock/item_base.html:133 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3044 +#: common/models.py:2961 msgid "Image file" msgstr "" -#: common/models.py:3086 +#: common/models.py:2973 common/models.py:3161 +msgid "Target model type for this image" +msgstr "" + +#: common/models.py:2977 +msgid "Target model ID for this image" +msgstr "" + +#: common/models.py:3018 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3105 +#: common/models.py:3037 msgid "Unit name" msgstr "" -#: common/models.py:3112 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3044 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3113 +#: common/models.py:3045 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3120 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3052 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3121 +#: common/models.py:3053 msgid "Unit definition" msgstr "" +#: common/models.py:3111 common/models.py:3168 stock/models.py:2426 +#: templates/js/translated/attachment.js:119 +#: templates/js/translated/attachment.js:345 +msgid "Attachment" +msgstr "Vedhæftning" + +#: common/models.py:3123 +msgid "Missing file" +msgstr "Manglende fil" + +#: common/models.py:3124 +msgid "Missing external link" +msgstr "Manglende eksternt link" + +#: common/models.py:3169 +msgid "Select file to attach" +msgstr "Vælg fil, der skal vedhæftes" + +#: common/models.py:3184 templates/js/translated/attachment.js:120 +#: templates/js/translated/attachment.js:360 +msgid "Comment" +msgstr "Kommentar" + +#: common/models.py:3185 +msgid "Attachment comment" +msgstr "" + +#: common/models.py:3201 +msgid "Upload date" +msgstr "" + +#: common/models.py:3202 +msgid "Date the file was uploaded" +msgstr "" + +#: common/models.py:3206 +msgid "File size" +msgstr "" + +#: common/models.py:3206 +msgid "File size in bytes" +msgstr "" + +#: common/models.py:3244 common/serializers.py:553 +msgid "Invalid model type specified for attachment" +msgstr "" + #: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" @@ -3736,7 +3634,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:468 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:472 msgid "Items Received" msgstr "" @@ -3752,66 +3650,95 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:333 +#: common/serializers.py:371 msgid "Is Running" msgstr "" -#: common/serializers.py:339 +#: common/serializers.py:377 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:345 +#: common/serializers.py:383 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:351 +#: common/serializers.py:389 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Task ID" msgstr "" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Unique task ID" msgstr "" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock" msgstr "" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock time" msgstr "" -#: common/serializers.py:370 +#: common/serializers.py:408 msgid "Task name" msgstr "" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function" msgstr "" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function name" msgstr "" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Arguments" msgstr "" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Task arguments" msgstr "" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Task keyword arguments" msgstr "" +#: common/serializers.py:525 +msgid "Filename" +msgstr "Filnavn" + +#: common/serializers.py:532 report/api.py:100 report/serializers.py:53 +msgid "Model Type" +msgstr "" + +#: common/serializers.py:559 +msgid "User does not have permission to create or edit attachments for this model" +msgstr "" + +#: common/validators.py:77 +msgid "Minimum places cannot be greater than maximum places" +msgstr "" + +#: common/validators.py:89 +msgid "Maximum places cannot be less than minimum places" +msgstr "" + +#: common/validators.py:100 +msgid "An empty domain is not allowed." +msgstr "" + +#: common/validators.py:102 +#, python-brace-format +msgid "Invalid domain name: {domain}" +msgstr "" + #: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 @@ -3850,210 +3777,222 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/api.py:164 +#: company/api.py:144 msgid "Part is Active" msgstr "" -#: company/api.py:168 +#: company/api.py:148 msgid "Manufacturer is Active" msgstr "" -#: company/api.py:317 +#: company/api.py:281 msgid "Supplier Part is Active" msgstr "" -#: company/api.py:321 +#: company/api.py:285 msgid "Internal Part is Active" msgstr "" -#: company/api.py:325 +#: company/api.py:289 msgid "Supplier is Active" msgstr "" -#: company/models.py:114 +#: company/models.py:100 company/models.py:365 +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 stock/api.py:806 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +msgid "Company" +msgstr "" + +#: company/models.py:101 company/views.py:51 +#: templates/js/translated/search.js:192 +msgid "Companies" +msgstr "" + +#: company/models.py:117 msgid "Company description" msgstr "" -#: company/models.py:115 +#: company/models.py:118 msgid "Description of the company" msgstr "" -#: company/models.py:120 company/templates/company/company_base.html:106 +#: company/models.py:123 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:532 msgid "Website" msgstr "" -#: company/models.py:120 +#: company/models.py:123 msgid "Company website URL" msgstr "" -#: company/models.py:125 +#: company/models.py:128 msgid "Phone number" msgstr "" -#: company/models.py:127 +#: company/models.py:130 msgid "Contact phone number" msgstr "" -#: company/models.py:134 +#: company/models.py:137 msgid "Contact email address" msgstr "" -#: company/models.py:139 company/templates/company/company_base.html:145 -#: order/models.py:331 order/templates/order/order_base.html:203 +#: company/models.py:142 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:214 +#: order/templates/order/sales_order_base.html:218 msgid "Contact" msgstr "" -#: company/models.py:141 +#: company/models.py:144 msgid "Point of contact" msgstr "" -#: company/models.py:147 +#: company/models.py:150 msgid "Link to external company information" msgstr "" -#: company/models.py:160 +#: company/models.py:163 msgid "Is this company active?" msgstr "" -#: company/models.py:165 +#: company/models.py:168 msgid "is customer" msgstr "" -#: company/models.py:166 +#: company/models.py:169 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:171 +#: company/models.py:174 msgid "is supplier" msgstr "" -#: company/models.py:172 +#: company/models.py:175 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:177 +#: company/models.py:180 msgid "is manufacturer" msgstr "" -#: company/models.py:178 +#: company/models.py:181 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:186 +#: company/models.py:189 msgid "Default currency used for this company" msgstr "" -#: company/models.py:273 company/models.py:382 -#: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:776 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 -msgid "Company" -msgstr "" - -#: company/models.py:383 +#: company/models.py:366 msgid "Select company" msgstr "" -#: company/models.py:388 +#: company/models.py:371 msgid "Address title" msgstr "" -#: company/models.py:389 +#: company/models.py:372 msgid "Title describing the address entry" msgstr "" -#: company/models.py:395 +#: company/models.py:378 msgid "Primary address" msgstr "" -#: company/models.py:396 +#: company/models.py:379 msgid "Set as primary address" msgstr "" -#: company/models.py:401 templates/js/translated/company.js:914 +#: company/models.py:384 templates/js/translated/company.js:914 #: templates/js/translated/company.js:971 msgid "Line 1" msgstr "" -#: company/models.py:402 +#: company/models.py:385 msgid "Address line 1" msgstr "" -#: company/models.py:408 templates/js/translated/company.js:915 +#: company/models.py:391 templates/js/translated/company.js:915 #: templates/js/translated/company.js:977 msgid "Line 2" msgstr "" -#: company/models.py:409 +#: company/models.py:392 msgid "Address line 2" msgstr "" -#: company/models.py:415 company/models.py:416 +#: company/models.py:398 company/models.py:399 #: templates/js/translated/company.js:983 msgid "Postal code" msgstr "" -#: company/models.py:422 +#: company/models.py:405 msgid "City/Region" msgstr "" -#: company/models.py:423 +#: company/models.py:406 msgid "Postal code city/region" msgstr "" -#: company/models.py:429 +#: company/models.py:412 msgid "State/Province" msgstr "" -#: company/models.py:430 +#: company/models.py:413 msgid "State or province" msgstr "" -#: company/models.py:436 templates/js/translated/company.js:1001 +#: company/models.py:419 templates/js/translated/company.js:1001 msgid "Country" msgstr "" -#: company/models.py:437 +#: company/models.py:420 msgid "Address country" msgstr "" -#: company/models.py:443 +#: company/models.py:426 msgid "Courier shipping notes" msgstr "" -#: company/models.py:444 +#: company/models.py:427 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:450 +#: company/models.py:433 msgid "Internal shipping notes" msgstr "" -#: company/models.py:451 +#: company/models.py:434 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:458 +#: company/models.py:441 msgid "Link to address information (external)" msgstr "" -#: company/models.py:489 company/models.py:791 stock/models.py:751 -#: stock/serializers.py:266 stock/templates/stock/item_base.html:142 +#: company/models.py:463 company/models.py:574 company/models.py:792 +#: 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:475 company/models.py:760 stock/models.py:766 +#: stock/serializers.py:422 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:491 company/models.py:793 +#: company/models.py:477 company/models.py:762 msgid "Select part" msgstr "" -#: company/models.py:500 company/templates/company/company_base.html:82 +#: company/models.py:486 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:515 +#: company/templates/company/supplier_part.html:145 part/serializers.py:517 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4063,190 +4002,191 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:501 +#: company/models.py:487 msgid "Select manufacturer" msgstr "" -#: company/models.py:507 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:525 +#: company/models.py:493 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:527 #: 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:1800 -#: templates/js/translated/purchase_order.js:1852 -#: templates/js/translated/purchase_order.js:2054 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1801 +#: templates/js/translated/purchase_order.js:1851 +#: templates/js/translated/purchase_order.js:2053 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:494 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:515 +#: company/models.py:501 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:523 +#: company/models.py:510 msgid "Manufacturer part description" msgstr "" -#: company/models.py:580 company/models.py:607 company/models.py:823 -#: 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:614 +#: company/models.py:581 msgid "Parameter name" msgstr "" -#: company/models.py:620 -#: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2436 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1492 -#: templates/js/translated/stock.js:1519 +#: company/models.py:587 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2418 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1493 +#: templates/js/translated/stock.js:1522 msgid "Value" msgstr "" -#: company/models.py:621 +#: company/models.py:588 msgid "Parameter value" msgstr "" -#: company/models.py:628 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1009 part/models.py:3623 +#: company/models.py:595 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1045 part/models.py:3646 #: part/templates/part/part_base.html:284 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1511 -#: templates/js/translated/part.js:1615 templates/js/translated/part.js:2370 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1512 +#: templates/js/translated/part.js:1616 templates/js/translated/part.js:2370 msgid "Units" msgstr "" -#: company/models.py:629 +#: company/models.py:596 msgid "Parameter units" msgstr "" -#: company/models.py:731 +#: company/models.py:648 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:452 +#: stock/models.py:777 stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:1600 +#: templates/js/translated/purchase_order.js:752 +#: templates/js/translated/stock.js:2280 +msgid "Supplier Part" +msgstr "" + +#: company/models.py:700 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:738 +#: company/models.py:707 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:752 +#: company/models.py:721 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:801 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:465 +#: company/models.py:770 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:499 plugin/builtin/suppliers/digikey.py:25 +#: part/serializers.py:501 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:1768 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1769 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1690 +#: templates/js/translated/purchase_order.js:1689 #: templates/js/translated/table_filters.js:804 msgid "Supplier" msgstr "" -#: company/models.py:802 +#: company/models.py:771 msgid "Select supplier" msgstr "" -#: company/models.py:808 part/serializers.py:510 +#: company/models.py:777 part/serializers.py:512 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:814 +#: company/models.py:783 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:824 +#: company/models.py:793 msgid "Select manufacturer part" msgstr "" -#: company/models.py:831 +#: company/models.py:800 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:839 +#: company/models.py:809 msgid "Supplier part description" msgstr "" -#: company/models.py:846 company/templates/company/supplier_part.html:187 -#: part/admin.py:418 part/models.py:4070 part/templates/part/upload_bom.html:59 +#: company/models.py:816 company/templates/company/supplier_part.html:187 +#: part/admin.py:412 part/models.py:4093 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 -#: report/templates/report/inventree_po_report_base.html:32 -#: report/templates/report/inventree_return_order_report_base.html:27 -#: report/templates/report/inventree_slr_report.html:105 -#: report/templates/report/inventree_so_report_base.html:32 -#: stock/serializers.py:579 +#: 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:710 msgid "Note" msgstr "" -#: company/models.py:855 part/models.py:1967 +#: company/models.py:825 part/models.py:2003 msgid "base cost" msgstr "" -#: company/models.py:856 part/models.py:1968 +#: company/models.py:826 part/models.py:2004 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:863 company/templates/company/supplier_part.html:160 -#: stock/admin.py:224 stock/models.py:782 stock/serializers.py:1350 +#: company/models.py:833 company/templates/company/supplier_part.html:160 +#: stock/admin.py:228 stock/models.py:797 stock/serializers.py:1466 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2424 msgid "Packaging" msgstr "" -#: company/models.py:864 +#: company/models.py:834 msgid "Part packaging" msgstr "" -#: company/models.py:869 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 +#: company/models.py:839 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 #: 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:2085 -#: templates/js/translated/purchase_order.js:2102 +#: templates/js/translated/purchase_order.js:2084 +#: templates/js/translated/purchase_order.js:2101 msgid "Pack Quantity" msgstr "" -#: company/models.py:871 +#: company/models.py:841 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:890 part/models.py:1974 +#: company/models.py:860 part/models.py:2010 msgid "multiple" msgstr "" -#: company/models.py:891 +#: company/models.py:861 msgid "Order multiple" msgstr "" -#: company/models.py:903 +#: company/models.py:873 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:909 +#: company/models.py:879 msgid "Availability Updated" msgstr "" -#: company/models.py:910 +#: company/models.py:880 msgid "Date of last update of availability data" msgstr "" -#: company/serializers.py:163 +#: company/serializers.py:161 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:381 part/admin.py:126 +#: company/serializers.py:357 part/admin.py:126 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4257,8 +4197,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:306 -#: templates/js/translated/part.js:814 templates/js/translated/part.js:1218 +#: templates/js/translated/model_renderers.js:312 +#: templates/js/translated/part.js:815 templates/js/translated/part.js:1219 msgid "Inactive" msgstr "" @@ -4293,11 +4233,11 @@ msgstr "" #: company/templates/company/manufacturer_part.html:51 #: company/templates/company/supplier_part.html:83 #: part/templates/part/part_thumb.html:20 -#: report/templates/report/inventree_build_order_base.html:98 -#: report/templates/report/inventree_po_report_base.html:40 -#: report/templates/report/inventree_so_report_base.html:40 -#: report/templates/report/inventree_test_report_base.html:84 -#: report/templates/report/inventree_test_report_base.html:163 +#: report/templates/report/inventree_build_order_report.html:98 +#: report/templates/report/inventree_purchase_order_report.html:40 +#: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_test_report.html:84 +#: report/templates/report/inventree_test_report.html:163 msgid "Part image" msgstr "" @@ -4316,15 +4256,15 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:910 -#: order/models.py:2008 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:804 -#: stock/models.py:805 stock/serializers.py:1100 +#: company/templates/company/company_base.html:92 order/models.py:938 +#: order/models.py:2032 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:819 +#: stock/models.py:820 stock/serializers.py:1216 #: 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:296 -#: templates/js/translated/sales_order.js:784 +#: templates/js/translated/return_order.js:295 +#: templates/js/translated/sales_order.js:820 #: templates/js/translated/stock.js:2959 #: templates/js/translated/table_filters.js:808 msgid "Customer" @@ -4334,10 +4274,10 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:124 order/models.py:341 +#: 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:221 +#: order/templates/order/sales_order_base.html:225 msgid "Address" msgstr "" @@ -4346,7 +4286,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:528 +#: part/templates/part/part_base.html:527 msgid "Remove Image" msgstr "" @@ -4355,19 +4295,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:530 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:560 +#: part/templates/part/part_base.html:559 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:614 +#: part/templates/part/part_base.html:613 msgid "Download Image" msgstr "" @@ -4520,7 +4460,7 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:454 +#: company/templates/company/supplier_part.html:97 order/api.py:458 msgid "Internal Part" msgstr "" @@ -4530,7 +4470,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:821 +#: part/admin.py:122 part/serializers.py:824 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4550,8 +4490,8 @@ msgstr "" msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:206 -#: templates/js/translated/part.js:1422 +#: company/templates/company/manufacturer_part.html:196 +#: templates/js/translated/part.js:1423 msgid "Add Parameter" msgstr "" @@ -4579,15 +4519,6 @@ msgstr "" msgid "Addresses" msgstr "" -#: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:448 -#: stock/models.py:762 stock/templates/stock/item_base.html:233 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2279 -msgid "Supplier Part" -msgstr "" - #: company/templates/company/supplier_part.html:50 #: templates/js/translated/company.js:1526 msgid "Supplier part actions" @@ -4630,11 +4561,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 part/bom.py:279 -#: part/bom.py:311 part/serializers.py:509 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 +#: part/bom.py:311 part/serializers.py:511 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1787 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1851 -#: templates/js/translated/purchase_order.js:2029 +#: templates/js/translated/purchase_order.js:1850 +#: templates/js/translated/purchase_order.js:2028 msgid "SKU" msgstr "" @@ -4643,12 +4574,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:199 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:200 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 #: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4680,15 +4611,15 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:820 part/stocktake.py:223 +#: part/serializers.py:823 part/stocktake.py:224 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 -#: stock/serializers.py:787 stock/serializers.py:951 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:68 +#: stock/serializers.py:918 stock/serializers.py:1082 #: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:184 -#: stock/templates/stock/location.html:196 +#: stock/templates/stock/location.html:191 +#: stock/templates/stock/location.html:203 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1061 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2766 #: users/models.py:206 msgid "Stock Items" @@ -4715,134 +4646,56 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:51 templates/js/translated/search.js:192 -msgid "Companies" -msgstr "" - #: company/views.py:52 msgid "New Company" msgstr "" -#: label/api.py:247 -msgid "Error printing label" -msgstr "" +#: generic/states/tests.py:18 order/status_codes.py:13 +msgid "Placed" +msgstr "Placeret" -#: label/models.py:120 -msgid "Label name" -msgstr "" - -#: label/models.py:128 -msgid "Label description" -msgstr "" - -#: label/models.py:136 -msgid "Label" -msgstr "" - -#: label/models.py:137 -msgid "Label template file" -msgstr "" - -#: label/models.py:143 part/models.py:3494 report/models.py:324 -#: templates/js/translated/part.js:2900 -#: templates/js/translated/table_filters.js:481 -msgid "Enabled" -msgstr "" - -#: label/models.py:144 -msgid "Label template is enabled" -msgstr "" - -#: label/models.py:149 -msgid "Width [mm]" -msgstr "" - -#: label/models.py:150 -msgid "Label width, specified in mm" -msgstr "" - -#: label/models.py:156 -msgid "Height [mm]" -msgstr "" - -#: label/models.py:157 -msgid "Label height, specified in mm" -msgstr "" - -#: label/models.py:163 report/models.py:317 -msgid "Filename Pattern" -msgstr "" - -#: label/models.py:164 -msgid "Pattern for generating label filenames" -msgstr "" - -#: label/models.py:313 label/models.py:352 label/models.py:377 -#: label/models.py:412 -msgid "Query filters (comma-separated list of key=value pairs)" -msgstr "" - -#: label/models.py:314 label/models.py:353 label/models.py:378 -#: label/models.py:413 report/models.py:345 report/models.py:496 -#: report/models.py:532 report/models.py:568 report/models.py:750 -msgid "Filters" -msgstr "" - -#: label/templates/label/part/part_label.html:31 -#: label/templates/label/stockitem/qr.html:21 -#: label/templates/label/stocklocation/qr.html:20 -#: templates/allauth_2fa/setup.html:18 -msgid "QR Code" -msgstr "" - -#: label/templates/label/part/part_label_code128.html:31 -#: label/templates/label/stocklocation/qr_and_text.html:31 -#: templates/qr_code.html:7 -msgid "QR code" -msgstr "" - -#: machine/machine_types/label_printer.py:217 +#: machine/machine_types/label_printer.py:218 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:218 +#: machine/machine_types/label_printer.py:219 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:234 order/api.py:1511 -#: templates/js/translated/sales_order.js:1042 +#: machine/machine_types/label_printer.py:235 order/api.py:1467 +#: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:237 +#: machine/machine_types/label_printer.py:238 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:245 +#: machine/machine_types/label_printer.py:246 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:252 +#: machine/machine_types/label_printer.py:253 msgid "Scope the printer to a specific location" msgstr "" @@ -4902,18 +4755,19 @@ msgstr "" msgid "Config type" msgstr "" -#: order/admin.py:30 order/models.py:89 -#: report/templates/report/inventree_po_report_base.html:31 -#: report/templates/report/inventree_so_report_base.html:31 +#: 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:2126 -#: templates/js/translated/sales_order.js:1847 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" -#: order/api.py:157 order/templates/order/order_base.html:118 +#: order/api.py:157 order/serializers.py:90 +#: order/templates/order/order_base.html:118 #: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/sales_order_base.html:122 msgid "Order Status" msgstr "" @@ -4926,567 +4780,623 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:433 order/api.py:813 order/models.py:1382 order/models.py:1489 -#: order/models.py:1535 order/models.py:1649 order/models.py:1803 -#: order/models.py:2207 order/models.py:2258 -#: templates/js/translated/sales_order.js:1488 +#: order/api.py:435 order/api.py:801 order/models.py:1395 order/models.py:1504 +#: order/models.py:1550 order/models.py:1664 order/models.py:1818 +#: order/models.py:2231 order/models.py:2282 +#: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:437 order/api.py:834 +#: order/api.py:439 order/api.py:822 msgid "Order Complete" msgstr "" -#: order/api.py:458 +#: order/api.py:462 msgid "Order Pending" msgstr "" -#: order/api.py:1505 order/models.py:1383 order/models.py:1490 -#: order/templates/order/order_base.html:9 +#: order/api.py:1461 order/models.py:380 order/models.py:1396 +#: order/models.py:1505 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 -#: report/templates/report/inventree_po_report_base.html:14 -#: stock/templates/stock/item_base.html:176 +#: report/templates/report/inventree_purchase_order_report.html:14 +#: stock/serializers.py:118 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1746 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:1674 -#: templates/js/translated/stock.js:2259 templates/js/translated/stock.js:2907 +#: templates/js/translated/purchase_order.js:1673 +#: templates/js/translated/stock.js:2260 templates/js/translated/stock.js:2907 msgid "Purchase Order" msgstr "" -#: order/api.py:1509 order/models.py:2208 order/models.py:2259 -#: order/templates/order/return_order_base.html:9 +#: order/api.py:1465 order/models.py:1981 order/models.py:2232 +#: order/models.py:2283 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:13 -#: templates/js/translated/return_order.js:281 +#: report/templates/report/inventree_return_order_report.html:13 +#: templates/js/translated/return_order.js:280 #: templates/js/translated/stock.js:2941 msgid "Return Order" msgstr "" -#: order/models.py:90 +#: order/models.py:91 msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:96 order/serializers.py:70 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:99 order/serializers.py:71 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:247 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:278 +#: order/models.py:290 msgid "Order description (optional)" msgstr "" -#: order/models.py:287 +#: order/models.py:299 msgid "Select project code for this order" msgstr "" -#: order/models.py:291 order/models.py:1288 order/models.py:1702 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 msgid "Link to external page" msgstr "" -#: order/models.py:299 +#: order/models.py:311 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:313 +#: order/models.py:325 msgid "Created By" msgstr "" -#: order/models.py:321 +#: order/models.py:333 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:332 +#: order/models.py:344 msgid "Point of contact for this order" msgstr "" -#: order/models.py:342 +#: order/models.py:354 msgid "Company address for this order" msgstr "" -#: order/models.py:443 order/models.py:899 +#: order/models.py:464 order/models.py:927 msgid "Order reference" msgstr "" -#: order/models.py:451 order/models.py:923 +#: order/models.py:472 order/models.py:951 msgid "Purchase order status" msgstr "" -#: order/models.py:466 +#: order/models.py:487 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:477 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1703 +#: order/models.py:498 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1702 msgid "Supplier Reference" msgstr "" -#: order/models.py:478 +#: order/models.py:499 msgid "Supplier order reference code" msgstr "" -#: order/models.py:487 +#: order/models.py:508 msgid "received by" msgstr "" -#: order/models.py:493 order/models.py:2034 +#: order/models.py:514 order/models.py:2058 msgid "Issue Date" msgstr "" -#: order/models.py:494 order/models.py:2035 +#: order/models.py:515 order/models.py:2059 msgid "Date order was issued" msgstr "" -#: order/models.py:501 order/models.py:2042 +#: order/models.py:522 order/models.py:2066 msgid "Date order was completed" msgstr "" -#: order/models.py:545 +#: order/models.py:566 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:739 +#: order/models.py:760 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:911 +#: order/models.py:939 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:934 order/models.py:2027 +#: order/models.py:962 order/models.py:2051 msgid "Customer Reference " msgstr "" -#: order/models.py:935 order/models.py:2028 +#: order/models.py:963 order/models.py:2052 msgid "Customer order reference code" msgstr "" -#: order/models.py:939 order/models.py:1656 -#: templates/js/translated/sales_order.js:843 -#: templates/js/translated/sales_order.js:1024 +#: order/models.py:967 order/models.py:1671 +#: templates/js/translated/sales_order.js:879 +#: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:948 +#: order/models.py:976 msgid "shipped by" msgstr "" -#: order/models.py:999 -msgid "Order cannot be completed as no parts have been assigned" +#: order/models.py:1025 +msgid "Order is already complete" msgstr "" -#: order/models.py:1004 +#: order/models.py:1028 +msgid "Order is already cancelled" +msgstr "" + +#: order/models.py:1032 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1008 templates/js/translated/sales_order.js:506 +#: order/models.py:1036 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1013 +#: order/models.py:1041 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1260 +#: order/models.py:1273 msgid "Item quantity" msgstr "" -#: order/models.py:1277 +#: order/models.py:1290 msgid "Line item reference" msgstr "" -#: order/models.py:1284 +#: order/models.py:1297 msgid "Line item notes" msgstr "" -#: order/models.py:1296 +#: order/models.py:1309 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1317 +#: order/models.py:1330 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1323 +#: order/models.py:1336 msgid "Context" msgstr "" -#: order/models.py:1324 +#: order/models.py:1337 msgid "Additional context for this line" msgstr "" -#: order/models.py:1334 +#: order/models.py:1347 msgid "Unit price" msgstr "" -#: order/models.py:1367 +#: order/models.py:1380 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1374 +#: order/models.py:1387 msgid "deleted" msgstr "" -#: order/models.py:1402 +#: order/models.py:1415 msgid "Supplier part" msgstr "" -#: order/models.py:1409 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1869 templates/js/translated/part.js:1901 +#: order/models.py:1422 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1870 templates/js/translated/part.js:1902 #: templates/js/translated/purchase_order.js:1306 -#: templates/js/translated/purchase_order.js:2170 -#: templates/js/translated/return_order.js:764 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/return_order.js:763 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1410 +#: order/models.py:1423 msgid "Number of items received" msgstr "" -#: order/models.py:1418 stock/models.py:923 stock/serializers.py:400 +#: order/models.py:1431 stock/models.py:938 stock/serializers.py:556 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2311 msgid "Purchase Price" msgstr "" -#: order/models.py:1419 +#: order/models.py:1432 msgid "Unit purchase price" msgstr "" -#: order/models.py:1434 +#: order/models.py:1447 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1523 +#: order/models.py:1538 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1528 +#: order/models.py:1543 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1554 part/templates/part/part_pricing.html:107 +#: order/models.py:1569 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:1555 +#: order/models.py:1570 msgid "Unit sale price" msgstr "" -#: order/models.py:1565 +#: order/models.py:1579 order/status_codes.py:43 +#: 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:1580 msgid "Shipped quantity" msgstr "" -#: order/models.py:1657 +#: order/models.py:1672 msgid "Date of shipment" msgstr "" -#: order/models.py:1663 templates/js/translated/sales_order.js:1036 +#: order/models.py:1678 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1664 +#: order/models.py:1679 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1672 +#: order/models.py:1687 msgid "Checked By" msgstr "" -#: order/models.py:1673 +#: order/models.py:1688 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1680 order/models.py:1893 order/serializers.py:1350 -#: order/serializers.py:1460 templates/js/translated/model_renderers.js:448 +#: order/models.py:1695 order/models.py:1908 order/serializers.py:1342 +#: order/serializers.py:1452 templates/js/translated/model_renderers.js:454 msgid "Shipment" msgstr "" -#: order/models.py:1681 +#: order/models.py:1696 msgid "Shipment number" msgstr "" -#: order/models.py:1689 +#: order/models.py:1704 msgid "Tracking Number" msgstr "" -#: order/models.py:1690 +#: order/models.py:1705 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1697 +#: order/models.py:1712 msgid "Invoice Number" msgstr "" -#: order/models.py:1698 +#: order/models.py:1713 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1718 +#: order/models.py:1733 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1721 +#: order/models.py:1736 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1839 order/models.py:1841 +#: order/models.py:1854 order/models.py:1856 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1848 +#: order/models.py:1863 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1851 +#: order/models.py:1866 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1854 +#: order/models.py:1869 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1873 order/serializers.py:1227 +#: order/models.py:1888 order/serializers.py:1219 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1876 +#: order/models.py:1891 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1877 plugin/base/barcodes/api.py:481 +#: order/models.py:1892 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1885 +#: order/models.py:1900 msgid "Line" msgstr "" -#: order/models.py:1894 +#: order/models.py:1909 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1907 order/models.py:2215 -#: templates/js/translated/return_order.js:722 +#: order/models.py:1922 order/models.py:2239 +#: templates/js/translated/return_order.js:721 msgid "Item" msgstr "" -#: order/models.py:1908 +#: order/models.py:1923 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1917 +#: order/models.py:1932 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1997 +#: order/models.py:2021 msgid "Return Order reference" msgstr "" -#: order/models.py:2009 +#: order/models.py:2033 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2021 +#: order/models.py:2045 msgid "Return order status" msgstr "" -#: order/models.py:2200 +#: order/models.py:2224 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2216 +#: order/models.py:2240 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2222 +#: order/models.py:2246 msgid "Received Date" msgstr "" -#: order/models.py:2223 +#: order/models.py:2247 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2234 templates/js/translated/return_order.js:733 +#: order/models.py:2258 templates/js/translated/return_order.js:732 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2235 +#: order/models.py:2259 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2242 +#: order/models.py:2266 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:283 +#: order/serializers.py:79 order/templates/order/po_sidebar.html:5 +#: order/templates/order/return_order_detail.html:18 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_purchase_order_report.html:22 +#: report/templates/report/inventree_return_order_report.html:19 +#: report/templates/report/inventree_sales_order_report.html:22 +msgid "Line Items" +msgstr "" + +#: order/serializers.py:83 +msgid "Completed Lines" +msgstr "" + +#: order/serializers.py:286 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:298 order/serializers.py:1243 +#: order/serializers.py:301 order/serializers.py:1235 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:308 order/serializers.py:1253 +#: order/serializers.py:311 order/serializers.py:1245 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:436 +#: order/serializers.py:439 msgid "Order is not open" msgstr "" -#: order/serializers.py:457 +#: order/serializers.py:460 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:459 +#: order/serializers.py:462 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:472 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:475 +#: order/serializers.py:478 msgid "Merge Items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:480 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:495 +#: order/serializers.py:498 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:501 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:509 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:507 +#: order/serializers.py:510 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:546 order/serializers.py:1321 +#: order/serializers.py:549 order/serializers.py:1313 msgid "Line Item" msgstr "" -#: order/serializers.py:552 +#: order/serializers.py:555 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:562 order/serializers.py:670 order/serializers.py:1676 +#: order/serializers.py:565 order/serializers.py:673 order/serializers.py:1657 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:578 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:581 templates/js/translated/purchase_order.js:1130 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:586 templates/js/translated/purchase_order.js:1154 +#: order/serializers.py:589 templates/js/translated/purchase_order.js:1154 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:597 templates/js/translated/barcode.js:52 +#: order/serializers.py:600 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:598 +#: order/serializers.py:601 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:614 +#: order/serializers.py:617 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:638 +#: order/serializers.py:641 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:686 order/serializers.py:1692 +#: order/serializers.py:689 order/serializers.py:1673 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:702 +#: order/serializers.py:705 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:713 +#: order/serializers.py:716 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1070 +#: order/serializers.py:1062 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1130 +#: order/serializers.py:1122 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1191 order/serializers.py:1330 +#: order/serializers.py:1183 order/serializers.py:1322 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1210 +#: order/serializers.py:1202 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1340 +#: order/serializers.py:1332 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1362 order/serializers.py:1468 +#: order/serializers.py:1354 order/serializers.py:1460 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1365 order/serializers.py:1471 +#: order/serializers.py:1357 order/serializers.py:1463 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1412 +#: order/serializers.py:1404 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1419 +#: order/serializers.py:1411 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1646 +#: order/serializers.py:1627 msgid "Return order line item" msgstr "" -#: order/serializers.py:1652 +#: order/serializers.py:1633 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1655 +#: order/serializers.py:1636 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1684 +#: order/serializers.py:1665 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1762 +#: order/serializers.py:1743 msgid "Line price currency" msgstr "" +#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +msgid "Lost" +msgstr "Mistet" + +#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +msgid "Returned" +msgstr "Returneret" + +#: order/status_codes.py:40 order/status_codes.py:67 +msgid "In Progress" +msgstr "Igangværende" + +#: order/status_codes.py:85 +msgid "Return" +msgstr "Retur" + +#: order/status_codes.py:88 +msgid "Repair" +msgstr "Reparér" + +#: order/status_codes.py:91 +msgid "Replace" +msgstr "Erstat" + +#: order/status_codes.py:94 +msgid "Refund" +msgstr "Refusion" + +#: order/status_codes.py:97 +msgid "Reject" +msgstr "Afvis" + #: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" @@ -5553,7 +5463,7 @@ msgstr "" #: order/templates/order/order_base.html:84 #: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:97 msgid "Complete Order" msgstr "" @@ -5563,13 +5473,13 @@ msgstr "" #: order/templates/order/order_base.html:106 #: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:106 +#: order/templates/order/sales_order_base.html:110 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:111 +#: order/templates/order/sales_order_base.html:115 msgid "Order Description" msgstr "" @@ -5578,19 +5488,19 @@ msgid "No suppplier information available" msgstr "" #: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:157 +#: order/templates/order/sales_order_base.html:161 msgid "Completed Line Items" msgstr "" #: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:163 -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:167 +#: order/templates/order/sales_order_base.html:177 msgid "Incomplete" msgstr "" #: order/templates/order/order_base.html:179 #: order/templates/order/return_order_base.html:157 -#: report/templates/report/inventree_build_order_base.html:121 +#: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" @@ -5600,15 +5510,15 @@ msgstr "" #: order/templates/order/order_base.html:228 #: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/sales_order_base.html:243 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:318 +#: order/templates/order/order_base.html:314 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:330 +#: order/templates/order/order_base.html:326 msgid "Link Barcode to Purchase Order" msgstr "" @@ -5662,11 +5572,11 @@ 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:529 -#: templates/js/translated/build.js:1626 +#: templates/js/translated/build.js:1629 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1236 -#: templates/js/translated/return_order.js:506 -#: templates/js/translated/sales_order.js:1109 +#: templates/js/translated/return_order.js:505 +#: templates/js/translated/sales_order.js:1145 #: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -5708,15 +5618,6 @@ msgstr "" msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/po_sidebar.html:5 -#: order/templates/order/return_order_detail.html:18 -#: order/templates/order/so_sidebar.html:5 -#: report/templates/report/inventree_po_report_base.html:22 -#: report/templates/report/inventree_return_order_report_base.html:19 -#: report/templates/report/inventree_so_report_base.html:22 -msgid "Line Items" -msgstr "" - #: order/templates/order/po_sidebar.html:7 msgid "Received Stock" msgstr "" @@ -5729,7 +5630,7 @@ msgstr "" #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 #: templates/js/translated/purchase_order.js:414 -#: templates/js/translated/return_order.js:459 +#: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" msgstr "" @@ -5778,30 +5679,30 @@ msgid "Print packing list" msgstr "" #: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:151 -#: templates/js/translated/return_order.js:309 -#: templates/js/translated/sales_order.js:797 +#: order/templates/order/sales_order_base.html:155 +#: 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:235 +#: order/templates/order/sales_order_base.html:239 #: 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:1072 -#: templates/js/translated/purchase_order.js:1753 -#: templates/js/translated/return_order.js:381 -#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/part.js:1073 +#: templates/js/translated/purchase_order.js:1752 +#: 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:263 +#: order/templates/order/return_order_base.html:259 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:275 +#: order/templates/order/return_order_base.html:271 msgid "Link Barcode to Return Order" msgstr "" @@ -5819,25 +5720,30 @@ msgid "Ship Items" msgstr "" #: order/templates/order/sales_order_base.html:92 -#: templates/js/translated/sales_order.js:484 +#: order/templates/order/sales_order_base.html:93 +msgid "Mark As Shipped" +msgstr "" + +#: order/templates/order/sales_order_base.html:96 +#: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:131 +#: order/templates/order/sales_order_base.html:135 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:169 +#: order/templates/order/sales_order_base.html:173 #: 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:312 +#: order/templates/order/sales_order_base.html:321 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:324 +#: order/templates/order/sales_order_base.html:333 msgid "Link Barcode to Sales Order" msgstr "" @@ -5881,34 +5787,34 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:39 part/admin.py:404 part/models.py:3921 part/stocktake.py:218 -#: stock/admin.py:153 +#: part/admin.py:39 part/admin.py:398 part/models.py:3944 part/stocktake.py:219 +#: stock/admin.py:152 msgid "Part ID" msgstr "" -#: part/admin.py:41 part/admin.py:411 part/models.py:3922 part/stocktake.py:219 -#: stock/admin.py:157 +#: part/admin.py:41 part/admin.py:405 part/models.py:3945 part/stocktake.py:220 +#: stock/admin.py:156 msgid "Part Name" msgstr "" -#: part/admin.py:45 part/stocktake.py:220 +#: part/admin.py:45 part/stocktake.py:221 msgid "Part Description" msgstr "" -#: part/admin.py:48 part/models.py:904 part/templates/part/part_base.html:269 -#: report/templates/report/inventree_slr_report.html:103 -#: templates/js/translated/part.js:1226 templates/js/translated/part.js:2341 -#: templates/js/translated/stock.js:2035 +#: part/admin.py:48 part/models.py:940 part/templates/part/part_base.html:269 +#: report/templates/report/inventree_stock_location_report.html:103 +#: templates/js/translated/part.js:1227 templates/js/translated/part.js:2341 +#: templates/js/translated/stock.js:2036 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:913 part/templates/part/part_base.html:277 -#: report/models.py:195 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:949 part/templates/part/part_base.html:277 +#: report/models.py:162 templates/js/translated/part.js:1232 #: templates/js/translated/part.js:2347 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:317 part/models.py:886 +#: part/admin.py:53 part/admin.py:319 part/models.py:922 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5917,15 +5823,15 @@ msgstr "" msgid "Part Image" msgstr "" -#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 +#: part/admin.py:63 part/admin.py:302 part/stocktake.py:222 msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 +#: part/admin.py:67 part/admin.py:304 part/stocktake.py:223 msgid "Category Name" msgstr "" -#: part/admin.py:71 part/admin.py:314 +#: part/admin.py:71 part/admin.py:316 msgid "Default Location ID" msgstr "" @@ -5933,11 +5839,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:872 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:908 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1000 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1036 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5945,36 +5851,36 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:231 -#: templates/js/translated/part.js:714 templates/js/translated/part.js:2152 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:235 +#: templates/js/translated/part.js:715 templates/js/translated/part.js:2153 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3080 part/models.py:3094 -#: templates/js/translated/part.js:969 +#: part/admin.py:155 part/models.py:3088 part/models.py:3102 +#: templates/js/translated/part.js:970 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3087 part/models.py:3101 -#: templates/js/translated/part.js:979 +#: part/admin.py:158 part/models.py:3095 part/models.py:3109 +#: templates/js/translated/part.js:980 msgid "Maximum Cost" msgstr "" -#: part/admin.py:306 part/admin.py:393 stock/admin.py:58 stock/admin.py:211 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 msgid "Parent ID" msgstr "" -#: part/admin.py:310 part/admin.py:400 stock/admin.py:62 +#: part/admin.py:312 part/admin.py:394 stock/admin.py:61 msgid "Parent Name" msgstr "" -#: part/admin.py:318 part/templates/part/category.html:88 +#: part/admin.py:320 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:323 part/models.py:391 part/serializers.py:117 -#: part/serializers.py:272 part/serializers.py:391 +#: part/admin.py:325 part/models.py:396 part/serializers.py:116 +#: part/serializers.py:259 part/serializers.py:378 #: 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/templates/part/category_sidebar.html:9 @@ -5985,125 +5891,129 @@ msgstr "" msgid "Parts" msgstr "" -#: part/admin.py:384 +#: part/admin.py:378 msgid "BOM Level" msgstr "" -#: part/admin.py:387 +#: part/admin.py:381 msgid "BOM Item ID" msgstr "" -#: part/admin.py:397 +#: part/admin.py:391 msgid "Parent IPN" msgstr "" -#: part/admin.py:408 part/models.py:3923 +#: part/admin.py:402 part/models.py:3946 msgid "Part IPN" msgstr "" -#: part/admin.py:421 part/serializers.py:1261 +#: part/admin.py:415 part/serializers.py:1266 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:426 part/serializers.py:1276 +#: part/admin.py:420 part/serializers.py:1281 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:119 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:121 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:138 stock/api.py:284 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:138 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:156 stock/api.py:302 +#: part/api.py:141 stock/api.py:330 msgid "Cascade" msgstr "" -#: part/api.py:158 +#: part/api.py:143 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:178 +#: part/api.py:163 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:180 +#: part/api.py:165 msgid "Filter by parent category" msgstr "" -#: part/api.py:213 +#: part/api.py:198 msgid "Exclude Tree" msgstr "" -#: part/api.py:215 +#: part/api.py:200 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:461 +#: part/api.py:433 msgid "Has Results" msgstr "" -#: part/api.py:628 +#: part/api.py:600 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:646 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:662 +#: part/api.py:634 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:746 +#: part/api.py:718 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:893 +#: part/api.py:865 msgid "Valid" msgstr "" -#: part/api.py:894 +#: part/api.py:866 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:900 +#: part/api.py:872 msgid "This option must be selected" msgstr "" -#: part/api.py:1561 part/models.py:896 part/models.py:3386 part/models.py:3866 -#: part/serializers.py:406 part/serializers.py:1117 -#: part/templates/part/part_base.html:260 stock/api.py:745 +#: part/api.py:1089 +msgid "BOM Valid" +msgstr "" + +#: part/api.py:1492 part/models.py:932 part/models.py:3374 part/models.py:3889 +#: part/serializers.py:393 part/serializers.py:1122 +#: part/templates/part/part_base.html:260 stock/api.py:775 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2377 msgid "Category" msgstr "" -#: part/api.py:1849 +#: part/api.py:1780 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:101 part/models.py:939 +#: part/bom.py:170 part/models.py:104 part/models.py:975 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:822 +#: part/bom.py:171 part/serializers.py:825 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6112,1040 +6022,1058 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:82 part/models.py:3867 part/templates/part/category.html:16 +#: part/models.py:85 part/models.py:3890 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:83 part/templates/part/category.html:136 +#: part/models.py:86 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:102 +#: part/models.py:105 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:107 stock/models.py:165 templates/js/translated/part.js:2810 +#: part/models.py:110 stock/models.py:174 templates/js/translated/part.js:2810 #: templates/js/translated/stock.js:2772 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:109 +#: part/models.py:112 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:118 +#: part/models.py:121 msgid "Default keywords" msgstr "" -#: part/models.py:119 +#: part/models.py:122 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:125 stock/models.py:89 stock/models.py:148 +#: part/models.py:128 stock/models.py:86 stock/models.py:157 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:126 stock/models.py:149 +#: part/models.py:129 stock/models.py:158 msgid "Icon (optional)" msgstr "" -#: part/models.py:148 +#: part/models.py:151 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:484 +#: part/models.py:485 +msgid "Cannot delete this part as it is still active" +msgstr "" + +#: part/models.py:490 +msgid "Cannot delete this part as it is used in an assembly" +msgstr "" + +#: part/models.py:528 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:532 part/models.py:539 +#: part/models.py:576 part/models.py:583 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:551 +#: part/models.py:595 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:616 +#: part/models.py:658 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:696 +#: part/models.py:736 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:801 +#: part/models.py:837 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 +#: part/models.py:847 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:826 +#: part/models.py:862 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:855 part/models.py:3922 +#: part/models.py:891 part/models.py:3945 msgid "Part name" msgstr "" -#: part/models.py:860 +#: part/models.py:896 msgid "Is Template" msgstr "" -#: part/models.py:861 +#: part/models.py:897 msgid "Is this part a template part?" msgstr "" -#: part/models.py:871 +#: part/models.py:907 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:879 +#: part/models.py:915 msgid "Part description (optional)" msgstr "" -#: part/models.py:887 +#: part/models.py:923 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:897 +#: part/models.py:933 msgid "Part category" msgstr "" -#: part/models.py:905 +#: part/models.py:941 msgid "Internal Part Number" msgstr "" -#: part/models.py:912 +#: part/models.py:948 msgid "Part revision or version number" msgstr "" -#: part/models.py:937 +#: part/models.py:973 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:983 part/templates/part/part_base.html:376 +#: part/models.py:1019 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:984 +#: part/models.py:1020 msgid "Default supplier part" msgstr "" -#: part/models.py:991 +#: part/models.py:1027 msgid "Default Expiry" msgstr "" -#: part/models.py:992 +#: part/models.py:1028 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1001 +#: part/models.py:1037 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1010 +#: part/models.py:1046 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1017 +#: part/models.py:1053 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1023 +#: part/models.py:1059 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1029 +#: part/models.py:1065 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1035 +#: part/models.py:1071 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1041 +#: part/models.py:1077 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1045 +#: part/models.py:1081 msgid "Is this part active?" msgstr "" -#: part/models.py:1051 +#: part/models.py:1087 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1057 +#: part/models.py:1093 msgid "BOM checksum" msgstr "" -#: part/models.py:1058 +#: part/models.py:1094 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1066 +#: part/models.py:1102 msgid "BOM checked by" msgstr "" -#: part/models.py:1071 +#: part/models.py:1107 msgid "BOM checked date" msgstr "" -#: part/models.py:1087 +#: part/models.py:1123 msgid "Creation User" msgstr "" -#: part/models.py:1097 +#: part/models.py:1133 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1102 part/templates/part/part_base.html:339 +#: part/models.py:1138 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2471 msgid "Last Stocktake" msgstr "" -#: part/models.py:1975 +#: part/models.py:2011 msgid "Sell multiple" msgstr "" -#: part/models.py:2994 +#: part/models.py:3002 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3010 +#: part/models.py:3018 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3011 +#: part/models.py:3019 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3017 +#: part/models.py:3025 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3026 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3024 +#: part/models.py:3032 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3025 +#: part/models.py:3033 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3031 +#: part/models.py:3039 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3032 +#: part/models.py:3040 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3038 +#: part/models.py:3046 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3039 +#: part/models.py:3047 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3045 +#: part/models.py:3053 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3046 +#: part/models.py:3054 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3052 +#: part/models.py:3060 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3053 +#: part/models.py:3061 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3059 +#: part/models.py:3067 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3060 +#: part/models.py:3068 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3066 +#: part/models.py:3074 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3067 +#: part/models.py:3075 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3073 +#: part/models.py:3081 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3074 +#: part/models.py:3082 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3081 +#: part/models.py:3089 msgid "Override minimum cost" msgstr "" -#: part/models.py:3088 +#: part/models.py:3096 msgid "Override maximum cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3103 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3110 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3108 +#: part/models.py:3116 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3109 +#: part/models.py:3117 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3115 +#: part/models.py:3123 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3116 +#: part/models.py:3124 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3122 +#: part/models.py:3130 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3123 +#: part/models.py:3131 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3129 +#: part/models.py:3137 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3130 +#: part/models.py:3138 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3149 +#: part/models.py:3157 msgid "Part for stocktake" msgstr "" -#: part/models.py:3154 +#: part/models.py:3162 msgid "Item Count" msgstr "" -#: part/models.py:3155 +#: part/models.py:3163 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3163 +#: part/models.py:3171 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3167 part/models.py:3250 +#: part/models.py:3175 part/models.py:3258 #: part/templates/part/part_scheduling.html:13 -#: report/templates/report/inventree_test_report_base.html:106 +#: 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:1085 templates/js/translated/pricing.js:826 +#: templates/js/translated/part.js:1086 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1732 +#: templates/js/translated/purchase_order.js:1731 #: templates/js/translated/stock.js:2821 msgid "Date" msgstr "" -#: part/models.py:3168 +#: part/models.py:3176 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3176 +#: part/models.py:3184 msgid "Additional notes" msgstr "" -#: part/models.py:3186 +#: part/models.py:3194 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3192 +#: part/models.py:3200 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3193 +#: part/models.py:3201 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3199 +#: part/models.py:3207 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3200 +#: part/models.py:3208 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3256 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3264 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3257 +#: part/models.py:3265 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3262 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3270 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3263 +#: part/models.py:3271 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3273 +#: part/models.py:3281 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3435 +#: part/models.py:3423 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3446 +#: part/models.py:3444 part/models.py:3608 +msgid "Choices must be unique" +msgstr "" + +#: part/models.py:3455 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3457 +#: part/models.py:3466 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3474 templates/js/translated/part.js:2879 +#: part/models.py:3483 templates/js/translated/part.js:2880 msgid "Test Name" msgstr "" -#: part/models.py:3475 +#: part/models.py:3484 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3481 +#: part/models.py:3490 msgid "Test Key" msgstr "" -#: part/models.py:3482 +#: part/models.py:3491 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3489 +#: part/models.py:3498 msgid "Test Description" msgstr "" -#: part/models.py:3490 +#: part/models.py:3499 msgid "Enter description for this test" msgstr "" -#: part/models.py:3494 +#: part/models.py:3503 report/models.py:209 +#: templates/js/translated/part.js:2901 +#: templates/js/translated/table_filters.js:481 +msgid "Enabled" +msgstr "" + +#: part/models.py:3503 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3499 templates/js/translated/part.js:2908 +#: part/models.py:3508 templates/js/translated/part.js:2909 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3500 +#: part/models.py:3509 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3505 templates/js/translated/part.js:2916 +#: part/models.py:3514 templates/js/translated/part.js:2917 msgid "Requires Value" msgstr "" -#: part/models.py:3506 +#: part/models.py:3515 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3511 templates/js/translated/part.js:2923 +#: part/models.py:3520 templates/js/translated/part.js:2924 msgid "Requires Attachment" msgstr "" -#: part/models.py:3513 +#: part/models.py:3522 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3560 +#: part/models.py:3528 part/models.py:3667 templates/js/translated/part.js:1637 +msgid "Choices" +msgstr "" + +#: part/models.py:3529 +msgid "Valid choices for this test (comma-separated)" +msgstr "" + +#: part/models.py:3583 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3565 +#: part/models.py:3588 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3585 -msgid "Choices must be unique" -msgstr "" - -#: part/models.py:3602 +#: part/models.py:3625 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3617 +#: part/models.py:3640 msgid "Parameter Name" msgstr "" -#: part/models.py:3624 +#: part/models.py:3647 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3632 +#: part/models.py:3655 msgid "Parameter description" msgstr "" -#: part/models.py:3638 templates/js/translated/part.js:1627 +#: part/models.py:3661 templates/js/translated/part.js:1628 #: templates/js/translated/table_filters.js:825 msgid "Checkbox" msgstr "" -#: part/models.py:3639 +#: part/models.py:3662 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3644 templates/js/translated/part.js:1636 -msgid "Choices" -msgstr "" - -#: part/models.py:3645 +#: part/models.py:3668 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3722 +#: part/models.py:3745 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3765 +#: part/models.py:3788 msgid "Parent Part" msgstr "" -#: part/models.py:3773 part/models.py:3874 part/models.py:3875 +#: part/models.py:3796 part/models.py:3897 part/models.py:3898 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3778 +#: part/models.py:3801 msgid "Data" msgstr "" -#: part/models.py:3779 +#: part/models.py:3802 msgid "Parameter Value" msgstr "" -#: part/models.py:3881 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3904 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3882 +#: part/models.py:3905 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3920 +#: part/models.py:3943 msgid "Part ID or part name" msgstr "" -#: part/models.py:3921 +#: part/models.py:3944 msgid "Unique part ID value" msgstr "" -#: part/models.py:3923 +#: part/models.py:3946 msgid "Part IPN value" msgstr "" -#: part/models.py:3924 +#: part/models.py:3947 msgid "Level" msgstr "" -#: part/models.py:3924 +#: part/models.py:3947 msgid "BOM level" msgstr "" -#: part/models.py:4014 +#: part/models.py:4037 msgid "Select parent part" msgstr "" -#: part/models.py:4024 +#: part/models.py:4047 msgid "Sub part" msgstr "" -#: part/models.py:4025 +#: part/models.py:4048 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4036 +#: part/models.py:4059 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4042 +#: part/models.py:4065 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4048 +#: part/models.py:4071 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4055 part/templates/part/upload_bom.html:55 +#: part/models.py:4078 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4056 +#: part/models.py:4079 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4063 +#: part/models.py:4086 msgid "BOM item reference" msgstr "" -#: part/models.py:4071 +#: part/models.py:4094 msgid "BOM item notes" msgstr "" -#: part/models.py:4077 +#: part/models.py:4100 msgid "Checksum" msgstr "" -#: part/models.py:4078 +#: part/models.py:4101 msgid "BOM line checksum" msgstr "" -#: part/models.py:4083 templates/js/translated/table_filters.js:174 +#: part/models.py:4106 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4084 +#: part/models.py:4107 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4089 part/templates/part/upload_bom.html:57 +#: part/models.py:4112 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:4090 +#: part/models.py:4113 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4095 part/templates/part/upload_bom.html:56 +#: part/models.py:4118 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:4096 +#: part/models.py:4119 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4181 stock/models.py:647 +#: part/models.py:4204 stock/models.py:662 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4191 part/models.py:4193 +#: part/models.py:4214 part/models.py:4216 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4333 +#: part/models.py:4354 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4354 +#: part/models.py:4375 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4367 +#: part/models.py:4388 msgid "Parent BOM item" msgstr "" -#: part/models.py:4375 +#: part/models.py:4396 msgid "Substitute part" msgstr "" -#: part/models.py:4391 +#: part/models.py:4412 msgid "Part 1" msgstr "" -#: part/models.py:4399 +#: part/models.py:4420 msgid "Part 2" msgstr "" -#: part/models.py:4400 +#: part/models.py:4421 msgid "Select Related Part" msgstr "" -#: part/models.py:4419 +#: part/models.py:4440 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4424 +#: part/models.py:4445 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:119 part/serializers.py:141 +#: part/serializers.py:118 part/serializers.py:140 #: part/templates/part/category.html:122 part/templates/part/category.html:207 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:185 +#: part/serializers.py:172 msgid "Results" msgstr "" -#: part/serializers.py:186 +#: part/serializers.py:173 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:210 part/serializers.py:228 stock/serializers.py:406 +#: part/serializers.py:197 part/serializers.py:215 stock/serializers.py:562 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:273 +#: part/serializers.py:260 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:397 +#: part/serializers.py:384 msgid "No parts selected" msgstr "" -#: part/serializers.py:407 +#: part/serializers.py:394 msgid "Select category" msgstr "" -#: part/serializers.py:437 +#: part/serializers.py:429 msgid "Original Part" msgstr "" -#: part/serializers.py:438 +#: part/serializers.py:430 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:443 +#: part/serializers.py:435 msgid "Copy Image" msgstr "" -#: part/serializers.py:444 +#: part/serializers.py:436 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:450 part/templates/part/detail.html:277 +#: part/serializers.py:442 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:451 +#: part/serializers.py:443 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:449 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:450 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:456 msgid "Copy Notes" msgstr "" -#: part/serializers.py:465 +#: part/serializers.py:457 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:475 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:477 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:484 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:488 +#: part/serializers.py:485 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:500 +#: part/serializers.py:502 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:516 +#: part/serializers.py:518 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:526 +#: part/serializers.py:528 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:533 +#: part/serializers.py:535 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:542 +#: part/serializers.py:544 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:553 +#: part/serializers.py:555 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:560 +#: part/serializers.py:562 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:823 +#: part/serializers.py:826 msgid "External Stock" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:828 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:828 +#: part/serializers.py:831 msgid "Variant Stock" msgstr "" -#: part/serializers.py:856 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:471 +#: part/serializers.py:861 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:472 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:862 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:863 templates/js/translated/part.js:102 +#: part/serializers.py:868 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:864 +#: part/serializers.py:869 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:870 +#: part/serializers.py:875 msgid "Supplier Information" msgstr "" -#: part/serializers.py:871 +#: part/serializers.py:876 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:884 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:885 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:885 +#: part/serializers.py:890 msgid "Existing Image" msgstr "" -#: part/serializers.py:886 +#: part/serializers.py:891 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:908 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1109 +#: part/serializers.py:1114 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1119 +#: part/serializers.py:1124 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1129 +#: part/serializers.py:1134 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1135 +#: part/serializers.py:1140 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1141 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1141 +#: part/serializers.py:1146 msgid "Generate Report" msgstr "" -#: part/serializers.py:1142 +#: part/serializers.py:1147 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1147 +#: part/serializers.py:1152 msgid "Update Parts" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1153 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1156 +#: part/serializers.py:1161 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1262 +#: part/serializers.py:1267 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1269 +#: part/serializers.py:1274 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1277 +#: part/serializers.py:1282 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1284 +#: part/serializers.py:1289 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1313 +#: part/serializers.py:1318 msgid "Update" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1319 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1342 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1349 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1352 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1714 +#: part/serializers.py:1719 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1722 +#: part/serializers.py:1727 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1723 +#: part/serializers.py:1728 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1728 +#: part/serializers.py:1733 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1729 +#: part/serializers.py:1734 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1734 +#: part/serializers.py:1739 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1735 +#: part/serializers.py:1740 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1740 +#: part/serializers.py:1745 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1741 +#: part/serializers.py:1746 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1775 +#: part/serializers.py:1780 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1776 +#: part/serializers.py:1781 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1806 +#: part/serializers.py:1811 msgid "No part column specified" msgstr "" -#: part/serializers.py:1850 +#: part/serializers.py:1855 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1853 +#: part/serializers.py:1858 msgid "No matching part found" msgstr "" -#: part/serializers.py:1856 +#: part/serializers.py:1861 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1865 +#: part/serializers.py:1870 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1873 +#: part/serializers.py:1878 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1894 +#: part/serializers.py:1899 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:224 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 -#: templates/js/translated/purchase_order.js:2085 +#: part/stocktake.py:225 templates/js/translated/part.js:1067 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 +#: templates/js/translated/purchase_order.js:2084 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:226 +#: part/stocktake.py:227 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:284 +#: part/stocktake.py:285 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:285 +#: part/stocktake.py:286 msgid "A new stocktake report is available for download" msgstr "" @@ -7279,9 +7207,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:251 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2215 users/models.py:204 +#: templates/js/translated/stock.js:2216 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7379,15 +7307,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:659 +#: part/templates/part/detail.html:657 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:667 +#: part/templates/part/detail.html:665 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:752 +#: part/templates/part/detail.html:750 msgid "Add Test Result Template" msgstr "" @@ -7446,7 +7374,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 +#: stock/templates/stock/location.html:74 templates/js/translated/label.js:143 msgid "Print Label" msgstr "" @@ -7517,7 +7445,7 @@ msgid "Part is virtual (not a physical part)" msgstr "" #: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:682 +#: part/templates/part/part_base.html:681 msgid "Show Part Details" msgstr "" @@ -7540,7 +7468,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:322 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1264 templates/js/translated/part.js:2444 +#: templates/js/translated/part.js:1265 templates/js/translated/part.js:2444 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -7563,19 +7491,19 @@ msgstr "" msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:512 +#: part/templates/part/part_base.html:511 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:529 +#: part/templates/part/part_base.html:528 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:580 +#: part/templates/part/part_base.html:579 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:676 +#: part/templates/part/part_base.html:675 msgid "Hide Part Details" msgstr "" @@ -7633,9 +7561,9 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1242 templates/js/translated/part.js:2145 +#: templates/js/translated/part.js:1243 templates/js/translated/part.js:2146 #: templates/js/translated/part.js:2392 templates/js/translated/stock.js:1059 -#: templates/js/translated/stock.js:2069 templates/navbar.html:31 +#: templates/js/translated/stock.js:2070 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -7677,11 +7605,11 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:247 +#: part/templates/part/prices.html:28 stock/admin.py:251 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2245 +#: templates/js/translated/stock.js:2246 msgid "Last Updated" msgstr "" @@ -7753,9 +7681,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:221 -#: templates/js/translated/part.js:704 templates/js/translated/part.js:2140 -#: templates/js/translated/part.js:2142 +#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:2141 +#: templates/js/translated/part.js:2143 msgid "No Stock" msgstr "" @@ -7833,7 +7761,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:168 +#: plugin/api.py:170 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -7899,8 +7827,8 @@ msgstr "" msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2590 -#: templates/js/translated/sales_order.js:1917 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2589 +#: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" @@ -7994,20 +7922,20 @@ msgstr "" msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:39 +#: plugin/base/label/label.py:39 templates/js/translated/label.js:155 msgid "Label printing failed" msgstr "" -#: plugin/base/label/mixins.py:63 +#: plugin/base/label/mixins.py:56 msgid "Error rendering label to PDF" msgstr "" -#: plugin/base/label/mixins.py:76 +#: plugin/base/label/mixins.py:70 msgid "Error rendering label to HTML" msgstr "" -#: plugin/base/label/mixins.py:111 -msgid "Error rendering label to PNG" +#: plugin/base/label/mixins.py:151 +msgid "No items provided to print" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:25 @@ -8021,7 +7949,7 @@ msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 -#: plugin/builtin/labels/inventree_label.py:23 +#: plugin/builtin/labels/inventree_label.py:22 #: plugin/builtin/labels/inventree_machine.py:64 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -8075,19 +8003,19 @@ msgstr "" msgid "Default currency exchange integration" msgstr "" -#: plugin/builtin/labels/inventree_label.py:20 +#: plugin/builtin/labels/inventree_label.py:19 msgid "InvenTree PDF label printer" msgstr "" -#: plugin/builtin/labels/inventree_label.py:21 +#: plugin/builtin/labels/inventree_label.py:20 msgid "Provides native support for printing PDF labels" msgstr "" -#: plugin/builtin/labels/inventree_label.py:29 +#: plugin/builtin/labels/inventree_label.py:28 msgid "Debug mode" msgstr "" -#: plugin/builtin/labels/inventree_label.py:30 +#: plugin/builtin/labels/inventree_label.py:29 msgid "Enable debug mode - returns raw HTML instead of PDF" msgstr "" @@ -8099,11 +8027,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:150 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:167 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8127,7 +8055,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:209 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:308 msgid "Landscape" msgstr "" @@ -8143,11 +8071,11 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:94 +#: plugin/builtin/labels/label_sheet.py:99 msgid "Label is too large for page size" msgstr "" -#: plugin/builtin/labels/label_sheet.py:128 +#: plugin/builtin/labels/label_sheet.py:133 msgid "No labels were generated" msgstr "" @@ -8240,61 +8168,62 @@ msgstr "" msgid "Uninstalled plugin successfully" msgstr "" -#: plugin/models.py:30 +#: plugin/models.py:36 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:31 +#: plugin/models.py:37 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:100 +#: plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: plugin/models.py:34 +#: plugin/models.py:44 msgid "Key of plugin" msgstr "" -#: plugin/models.py:42 +#: plugin/models.py:52 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:90 msgid "Package Name" msgstr "" -#: plugin/models.py:51 +#: plugin/models.py:61 msgid "Name of the installed package, if the plugin was installed via PIP" msgstr "" -#: plugin/models.py:56 +#: plugin/models.py:66 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:147 templates/js/translated/table_filters.js:370 +#: plugin/models.py:157 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:504 msgid "Installed" msgstr "" -#: plugin/models.py:156 +#: plugin/models.py:166 msgid "Sample plugin" msgstr "" -#: plugin/models.py:164 +#: plugin/models.py:174 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:172 +#: plugin/models.py:182 msgid "Package Plugin" msgstr "" -#: plugin/models.py:196 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:220 report/models.py:475 +#: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:243 +#: plugin/models.py:267 msgid "Method" msgstr "" @@ -8302,17 +8231,17 @@ msgstr "" msgid "No author found" msgstr "" -#: plugin/registry.py:588 +#: plugin/registry.py:598 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:591 +#: plugin/registry.py:601 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:593 +#: plugin/registry.py:603 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -8395,279 +8324,359 @@ msgstr "" msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:156 +#: plugin/serializers.py:161 msgid "Full reload" msgstr "" -#: plugin/serializers.py:157 +#: plugin/serializers.py:162 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:163 +#: plugin/serializers.py:168 msgid "Force reload" msgstr "" -#: plugin/serializers.py:165 +#: plugin/serializers.py:170 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:177 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:178 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:195 +#: plugin/serializers.py:205 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:196 +#: plugin/serializers.py:206 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:219 +#: plugin/serializers.py:226 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:220 +#: plugin/serializers.py:227 msgid "Delete the plugin configuration from the database" msgstr "" -#: report/api.py:158 +#: report/api.py:88 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:197 report/api.py:234 +#: report/api.py:103 report/models.py:439 report/serializers.py:98 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1747 +#: templates/js/translated/return_order.js:353 +#: templates/js/translated/sales_order.js:887 +#: templates/js/translated/sales_order.js:1047 +msgid "Items" +msgstr "" + +#: report/api.py:180 +msgid "Plugin not found" +msgstr "" + +#: report/api.py:182 +msgid "Plugin is not active" +msgstr "" + +#: report/api.py:184 +msgid "Plugin does not support label printing" +msgstr "" + +#: report/api.py:233 +msgid "Invalid label dimensions" +msgstr "" + +#: report/api.py:248 report/api.py:329 +msgid "No valid items provided to template" +msgstr "" + +#: report/api.py:283 +msgid "Error printing label" +msgstr "" + +#: report/api.py:375 report/api.py:411 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:319 -msgid "Test report" -msgstr "" - -#: report/helpers.py:15 +#: report/helpers.py:43 msgid "A4" msgstr "" -#: report/helpers.py:16 +#: report/helpers.py:44 msgid "A3" msgstr "" -#: report/helpers.py:17 +#: report/helpers.py:45 msgid "Legal" msgstr "" -#: report/helpers.py:18 +#: report/helpers.py:46 msgid "Letter" msgstr "" -#: report/models.py:177 +#: report/models.py:119 +msgid "Template file with this name already exists" +msgstr "" + +#: report/models.py:151 msgid "Template name" msgstr "" -#: report/models.py:183 -msgid "Report template file" +#: report/models.py:157 +msgid "Template description" msgstr "" -#: report/models.py:190 -msgid "Report template description" +#: report/models.py:163 +msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:196 -msgid "Report revision number (auto-increments)" +#: report/models.py:203 +msgid "Filename Pattern" msgstr "" #: report/models.py:204 +msgid "Pattern for generating filenames" +msgstr "" + +#: report/models.py:209 +msgid "Template is enabled" +msgstr "" + +#: report/models.py:215 +msgid "Target model type for template" +msgstr "" + +#: report/models.py:235 +msgid "Filters" +msgstr "" + +#: report/models.py:236 +msgid "Template query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:295 report/models.py:362 +msgid "Template file" +msgstr "" + +#: report/models.py:303 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:210 +#: report/models.py:309 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:318 -msgid "Pattern for generating report filenames" +#: report/models.py:368 +msgid "Width [mm]" msgstr "" -#: report/models.py:325 -msgid "Report template is enabled" +#: report/models.py:369 +msgid "Label width, specified in mm" msgstr "" -#: report/models.py:347 -msgid "StockItem query filters (comma-separated list of key=value pairs)" +#: report/models.py:375 +msgid "Height [mm]" msgstr "" -#: report/models.py:354 -msgid "Include Installed Tests" +#: report/models.py:376 +msgid "Label height, specified in mm" msgstr "" -#: report/models.py:356 -msgid "Include test results for stock items installed inside assembled item" +#: report/models.py:439 +msgid "Number of items to process" msgstr "" -#: report/models.py:424 -msgid "Build Filters" +#: report/models.py:445 +msgid "Report generation is complete" msgstr "" -#: report/models.py:425 -msgid "Build query filters (comma-separated list of key=value pairs" +#: report/models.py:449 templates/js/translated/build.js:2177 +msgid "Progress" msgstr "" -#: report/models.py:464 -msgid "Part Filters" +#: report/models.py:449 +msgid "Report generation progress" msgstr "" -#: report/models.py:465 -msgid "Part query filters (comma-separated list of key=value pairs" +#: report/models.py:457 +msgid "Report Template" msgstr "" -#: report/models.py:497 -msgid "Purchase order query filters" +#: report/models.py:464 report/models.py:487 +msgid "Output File" msgstr "" -#: report/models.py:533 -msgid "Sales order query filters" +#: report/models.py:465 report/models.py:488 +msgid "Generated output file" msgstr "" -#: report/models.py:569 -msgid "Return order query filters" +#: report/models.py:476 +msgid "Label output plugin" msgstr "" -#: report/models.py:641 -msgid "Snippet file with this name already exists" +#: report/models.py:480 +msgid "Label Template" msgstr "" -#: report/models.py:648 +#: report/models.py:503 msgid "Snippet" msgstr "" -#: report/models.py:649 +#: report/models.py:504 msgid "Report snippet file" msgstr "" -#: report/models.py:656 +#: report/models.py:511 msgid "Snippet file description" msgstr "" -#: report/models.py:714 -msgid "Asset file with this name already exists" -msgstr "" - -#: report/models.py:722 +#: report/models.py:529 msgid "Asset" msgstr "" -#: report/models.py:723 +#: report/models.py:530 msgid "Report asset file" msgstr "" -#: report/models.py:730 +#: report/models.py:537 msgid "Asset file description" msgstr "" -#: report/models.py:752 -msgid "stock location query filters (comma-separated list of key=value pairs)" +#: report/serializers.py:91 +msgid "Select report template" +msgstr "" + +#: report/serializers.py:99 report/serializers.py:149 +msgid "List of item primary keys to include in the report" +msgstr "" + +#: report/serializers.py:132 +msgid "Select label template" +msgstr "" + +#: report/serializers.py:140 +msgid "Printing Plugin" +msgstr "" + +#: report/serializers.py:141 +msgid "Select plugin to use for label printing" +msgstr "" + +#: report/templates/label/part_label.html:31 +#: report/templates/label/stockitem_qr.html:21 +#: report/templates/label/stocklocation_qr.html:20 +#: templates/allauth_2fa/setup.html:18 +msgid "QR Code" +msgstr "" + +#: report/templates/label/part_label_code128.html:31 +#: report/templates/label/stocklocation_qr_and_text.html:31 +#: templates/qr_code.html:7 +msgid "QR code" msgstr "" #: report/templates/report/inventree_bill_of_materials_report.html:133 msgid "Materials needed" msgstr "" -#: report/templates/report/inventree_build_order_base.html:146 +#: report/templates/report/inventree_build_order_report.html:146 msgid "Required For" msgstr "" -#: report/templates/report/inventree_po_report_base.html:15 +#: report/templates/report/inventree_purchase_order_report.html:15 msgid "Supplier was deleted" msgstr "" -#: report/templates/report/inventree_po_report_base.html:30 -#: report/templates/report/inventree_so_report_base.html:30 +#: 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/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2116 -#: templates/js/translated/sales_order.js:1837 +#: templates/js/translated/purchase_order.js:2115 +#: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" -#: report/templates/report/inventree_po_report_base.html:55 -#: report/templates/report/inventree_return_order_report_base.html:48 -#: report/templates/report/inventree_so_report_base.html:55 +#: report/templates/report/inventree_purchase_order_report.html:55 +#: report/templates/report/inventree_return_order_report.html:48 +#: report/templates/report/inventree_sales_order_report.html:55 msgid "Extra Line Items" msgstr "" -#: report/templates/report/inventree_po_report_base.html:72 -#: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:2018 -#: templates/js/translated/sales_order.js:1806 +#: report/templates/report/inventree_purchase_order_report.html:72 +#: report/templates/report/inventree_sales_order_report.html:72 +#: templates/js/translated/purchase_order.js:2017 +#: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" -#: report/templates/report/inventree_return_order_report_base.html:25 -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:809 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:519 templates/js/translated/build.js:1364 -#: templates/js/translated/build.js:2353 -#: templates/js/translated/model_renderers.js:224 -#: templates/js/translated/return_order.js:540 -#: templates/js/translated/return_order.js:724 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:824 +#: stock/serializers.py:149 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:519 templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:2355 +#: 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:1611 -#: templates/js/translated/sales_order.js:1696 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 #: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" -#: report/templates/report/inventree_slr_report.html:97 +#: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" -#: report/templates/report/inventree_test_report_base.html:21 +#: report/templates/report/inventree_test_report.html:21 msgid "Stock Item Test Report" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 +#: report/templates/report/inventree_test_report.html:97 msgid "Test Results" msgstr "" -#: report/templates/report/inventree_test_report_base.html:102 -#: templates/js/translated/stock.js:1492 +#: report/templates/report/inventree_test_report.html:102 +#: templates/js/translated/stock.js:1495 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2430 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2412 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:130 +#: report/templates/report/inventree_test_report.html:130 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:132 +#: report/templates/report/inventree_test_report.html:132 msgid "Fail" msgstr "" -#: report/templates/report/inventree_test_report_base.html:139 +#: report/templates/report/inventree_test_report.html:139 msgid "No result (required)" msgstr "" -#: report/templates/report/inventree_test_report_base.html:141 +#: report/templates/report/inventree_test_report.html:141 msgid "No result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:154 +#: report/templates/report/inventree_test_report.html:154 #: stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:162 templates/js/translated/stock.js:700 -#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3110 +#: report/templates/report/inventree_test_report.html:168 stock/admin.py:161 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3110 msgid "Serial" msgstr "" @@ -8687,617 +8696,793 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:52 stock/admin.py:172 +#: stock/admin.py:51 stock/admin.py:171 msgid "Location ID" msgstr "" -#: stock/admin.py:54 stock/admin.py:176 +#: stock/admin.py:53 stock/admin.py:175 msgid "Location Name" msgstr "" -#: stock/admin.py:64 stock/templates/stock/location.html:131 +#: stock/admin.py:63 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:149 +#: stock/admin.py:148 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:168 +#: stock/admin.py:167 msgid "Status Code" msgstr "" -#: stock/admin.py:180 +#: stock/admin.py:179 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:185 +#: stock/admin.py:184 +msgid "Supplier Part SKU" +msgstr "" + +#: stock/admin.py:189 msgid "Supplier ID" msgstr "" -#: stock/admin.py:191 +#: stock/admin.py:195 msgid "Supplier Name" msgstr "" -#: stock/admin.py:196 +#: stock/admin.py:200 msgid "Customer ID" msgstr "" -#: stock/admin.py:201 stock/models.py:789 +#: stock/admin.py:205 stock/models.py:804 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:206 +#: stock/admin.py:210 msgid "Build ID" msgstr "" -#: stock/admin.py:216 +#: stock/admin.py:220 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:221 +#: stock/admin.py:225 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:236 +#: stock/admin.py:240 msgid "Review Needed" msgstr "" -#: stock/admin.py:241 +#: stock/admin.py:245 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:256 stock/models.py:883 +#: stock/admin.py:260 stock/models.py:898 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2229 users/models.py:124 +#: templates/js/translated/stock.js:2230 users/models.py:124 msgid "Expiry Date" msgstr "" -#: stock/api.py:284 +#: stock/api.py:312 msgid "Filter by location depth" msgstr "" -#: stock/api.py:304 +#: stock/api.py:332 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:325 +#: stock/api.py:353 msgid "Parent Location" msgstr "" -#: stock/api.py:326 +#: stock/api.py:354 msgid "Filter by parent location" msgstr "" -#: stock/api.py:579 templates/js/translated/table_filters.js:427 +#: stock/api.py:609 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:767 +#: stock/api.py:797 msgid "Part Tree" msgstr "" -#: stock/api.py:797 +#: stock/api.py:827 msgid "Expiry date before" msgstr "" -#: stock/api.py:801 +#: stock/api.py:831 msgid "Expiry date after" msgstr "" -#: stock/api.py:804 stock/templates/stock/item_base.html:439 +#: stock/api.py:834 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:891 +#: stock/api.py:921 msgid "Quantity is required" msgstr "" -#: stock/api.py:897 +#: stock/api.py:927 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:928 +#: stock/api.py:958 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:938 +#: stock/api.py:968 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:969 +#: stock/api.py:999 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:63 +#: stock/models.py:60 msgid "Stock Location type" msgstr "" -#: stock/models.py:64 +#: stock/models.py:61 msgid "Stock Location types" msgstr "" -#: stock/models.py:90 +#: stock/models.py:87 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:771 +#: stock/models.py:124 stock/models.py:786 #: 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:179 +#: stock/models.py:125 stock/templates/stock/location.html:186 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:158 stock/models.py:932 +#: stock/models.py:167 stock/models.py:947 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:159 stock/models.py:933 +#: stock/models.py:168 stock/models.py:948 msgid "Select Owner" msgstr "" -#: stock/models.py:167 +#: stock/models.py:176 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:174 templates/js/translated/stock.js:2781 +#: stock/models.py:183 templates/js/translated/stock.js:2781 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:175 +#: stock/models.py:184 msgid "This is an external stock location" msgstr "" -#: stock/models.py:181 templates/js/translated/stock.js:2790 +#: stock/models.py:190 templates/js/translated/stock.js:2790 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:185 +#: stock/models.py:194 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:254 +#: stock/models.py:261 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:626 +#: stock/models.py:641 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:653 stock/serializers.py:290 +#: stock/models.py:668 stock/serializers.py:446 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:670 +#: stock/models.py:685 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:680 stock/models.py:693 +#: stock/models.py:695 stock/models.py:708 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:683 +#: stock/models.py:698 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:707 +#: stock/models.py:722 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:712 +#: stock/models.py:727 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:725 +#: stock/models.py:740 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:741 +#: stock/models.py:756 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:753 +#: stock/models.py:768 msgid "Base part" msgstr "" -#: stock/models.py:763 +#: stock/models.py:778 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:775 +#: stock/models.py:790 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:783 stock/serializers.py:1351 +#: stock/models.py:798 stock/serializers.py:1467 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:794 +#: stock/models.py:809 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:813 +#: stock/models.py:828 msgid "Serial number for this item" msgstr "" -#: stock/models.py:827 stock/serializers.py:1334 +#: stock/models.py:842 stock/serializers.py:1450 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:832 +#: stock/models.py:847 msgid "Stock Quantity" msgstr "" -#: stock/models.py:842 +#: stock/models.py:857 msgid "Source Build" msgstr "" -#: stock/models.py:845 +#: stock/models.py:860 msgid "Build for this stock item" msgstr "" -#: stock/models.py:852 stock/templates/stock/item_base.html:363 +#: stock/models.py:867 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:855 +#: stock/models.py:870 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:864 +#: stock/models.py:879 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:868 +#: stock/models.py:883 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:874 +#: stock/models.py:889 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:885 +#: stock/models.py:900 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:903 +#: stock/models.py:918 msgid "Delete on deplete" msgstr "" -#: stock/models.py:904 +#: stock/models.py:919 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:924 +#: stock/models.py:939 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:955 +#: stock/models.py:970 msgid "Converted to part" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1486 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1492 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1479 +#: stock/models.py:1500 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1485 +#: stock/models.py:1506 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1511 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1498 stock/serializers.py:529 +#: stock/models.py:1519 stock/serializers.py:660 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1595 +#: stock/models.py:1616 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1613 +#: stock/models.py:1634 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1617 +#: stock/models.py:1638 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1620 +#: stock/models.py:1641 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1623 +#: stock/models.py:1644 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1647 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1629 +#: stock/models.py:1650 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1636 stock/serializers.py:1240 +#: stock/models.py:1657 stock/serializers.py:1356 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1640 +#: stock/models.py:1661 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1648 +#: stock/models.py:1669 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1674 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1870 +#: stock/models.py:1901 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2333 +#: stock/models.py:2310 msgid "Entry notes" msgstr "" -#: stock/models.py:2398 +#: stock/models.py:2378 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2403 +#: stock/models.py:2383 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2388 +msgid "Invalid value for this test" +msgstr "" + +#: stock/models.py:2412 msgid "Test result" msgstr "" -#: stock/models.py:2437 +#: stock/models.py:2419 msgid "Test output value" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2427 msgid "Test result attachment" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2431 msgid "Test notes" msgstr "" -#: stock/models.py:2457 templates/js/translated/stock.js:1545 +#: stock/models.py:2439 templates/js/translated/stock.js:1548 msgid "Test station" msgstr "" -#: stock/models.py:2458 +#: stock/models.py:2440 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2464 +#: stock/models.py:2446 msgid "Started" msgstr "" -#: stock/models.py:2465 +#: stock/models.py:2447 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2471 +#: stock/models.py:2453 msgid "Finished" msgstr "" -#: stock/models.py:2472 +#: stock/models.py:2454 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:100 -msgid "Test template for this result" +#: stock/serializers.py:74 +msgid "Generated batch code" +msgstr "" + +#: stock/serializers.py:83 +msgid "Select build order" +msgstr "" + +#: stock/serializers.py:92 +msgid "Select stock item to generate batch code for" +msgstr "" + +#: stock/serializers.py:101 +msgid "Select location to generate batch code for" +msgstr "" + +#: stock/serializers.py:110 +msgid "Select part to generate batch code for" msgstr "" #: stock/serializers.py:119 +msgid "Select purchase order" +msgstr "" + +#: stock/serializers.py:126 +msgid "Enter quantity for batch code" +msgstr "" + +#: stock/serializers.py:149 +msgid "Generated serial number" +msgstr "" + +#: stock/serializers.py:158 +msgid "Select part to generate serial number for" +msgstr "" + +#: stock/serializers.py:166 +msgid "Quantity of serial numbers to generate" +msgstr "" + +#: stock/serializers.py:228 +msgid "Test template for this result" +msgstr "" + +#: stock/serializers.py:247 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:279 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:184 +#: stock/serializers.py:315 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:282 +#: stock/serializers.py:438 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:402 +#: stock/serializers.py:558 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:464 +#: stock/serializers.py:595 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:477 +#: stock/serializers.py:608 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:484 +#: stock/serializers.py:615 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:495 stock/serializers.py:1197 stock/serializers.py:1453 +#: stock/serializers.py:626 stock/serializers.py:1313 stock/serializers.py:1569 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:633 msgid "Optional note field" msgstr "" -#: stock/serializers.py:512 +#: stock/serializers.py:643 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:567 +#: stock/serializers.py:698 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:574 +#: stock/serializers.py:705 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:575 +#: stock/serializers.py:706 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:580 stock/serializers.py:660 stock/serializers.py:756 -#: stock/serializers.py:806 +#: stock/serializers.py:711 stock/serializers.py:791 stock/serializers.py:887 +#: stock/serializers.py:937 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:588 +#: stock/serializers.py:719 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:596 +#: stock/serializers.py:727 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:607 +#: stock/serializers.py:738 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:620 +#: stock/serializers.py:751 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:655 +#: stock/serializers.py:786 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:690 +#: stock/serializers.py:821 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:703 +#: stock/serializers.py:834 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:720 +#: stock/serializers.py:851 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:882 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:788 +#: stock/serializers.py:919 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:794 +#: stock/serializers.py:925 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:890 stock/serializers.py:953 +#: stock/serializers.py:1021 stock/serializers.py:1084 #: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:213 +#: stock/templates/stock/location.html:222 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1069 +#: stock/serializers.py:1185 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1073 +#: stock/serializers.py:1189 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1077 +#: stock/serializers.py:1193 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1101 +#: stock/serializers.py:1217 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1107 +#: stock/serializers.py:1223 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1115 +#: stock/serializers.py:1231 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1125 stock/serializers.py:1379 +#: stock/serializers.py:1241 stock/serializers.py:1495 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1204 +#: stock/serializers.py:1320 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1209 +#: stock/serializers.py:1325 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1210 +#: stock/serializers.py:1326 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1215 +#: stock/serializers.py:1331 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1216 +#: stock/serializers.py:1332 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1226 +#: stock/serializers.py:1342 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1293 +#: stock/serializers.py:1409 msgid "No Change" msgstr "" -#: stock/serializers.py:1322 +#: stock/serializers.py:1438 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1341 +#: stock/serializers.py:1457 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1369 +#: stock/serializers.py:1485 msgid "Stock transaction notes" msgstr "" +#: stock/status_codes.py:11 +msgid "OK" +msgstr "" + +#: stock/status_codes.py:12 +msgid "Attention needed" +msgstr "Opmærksomhed påkrævet" + +#: stock/status_codes.py:13 +msgid "Damaged" +msgstr "Beskadiget" + +#: stock/status_codes.py:14 +msgid "Destroyed" +msgstr "Destrueret" + +#: stock/status_codes.py:15 +msgid "Rejected" +msgstr "Afvist" + +#: stock/status_codes.py:19 +msgid "Quarantined" +msgstr "I karantæne" + +#: stock/status_codes.py:40 +msgid "Legacy stock tracking entry" +msgstr "Forældet lager sporings post" + +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +msgid "Stock item created" +msgstr "Lager-element oprettet" + +#: stock/status_codes.py:45 +msgid "Edited stock item" +msgstr "Redigeret lager-element" + +#: stock/status_codes.py:46 +msgid "Assigned serial number" +msgstr "Serienummer tildelt" + +#: stock/status_codes.py:49 +msgid "Stock counted" +msgstr "Lagerbeholdning optalt" + +#: stock/status_codes.py:50 +msgid "Stock manually added" +msgstr "Lagerbeholdning tilføjet manuelt" + +#: stock/status_codes.py:51 +msgid "Stock manually removed" +msgstr "Lagerbeholdning fjernet manuelt" + +#: stock/status_codes.py:54 +msgid "Location changed" +msgstr "Lokation ændret" + +#: stock/status_codes.py:55 +msgid "Stock updated" +msgstr "Lager opdateret" + +#: stock/status_codes.py:58 +msgid "Installed into assembly" +msgstr "Monteret i samling" + +#: stock/status_codes.py:59 +msgid "Removed from assembly" +msgstr "Fjernet fra samling" + +#: stock/status_codes.py:61 +msgid "Installed component item" +msgstr "Installeret komponent element" + +#: stock/status_codes.py:62 +msgid "Removed component item" +msgstr "Fjernet komponent element" + +#: stock/status_codes.py:65 +msgid "Split from parent item" +msgstr "Opdel fra overordnet element" + +#: stock/status_codes.py:66 +msgid "Split child item" +msgstr "Opdel underordnet element" + +#: stock/status_codes.py:69 templates/js/translated/stock.js:1858 +msgid "Merged stock items" +msgstr "Flettede lagervarer" + +#: stock/status_codes.py:72 +msgid "Converted to variant" +msgstr "Konverteret til variant" + +#: stock/status_codes.py:75 +msgid "Build order output created" +msgstr "Byggeordre output genereret" + +#: stock/status_codes.py:76 +msgid "Build order output completed" +msgstr "Byggeorder output fuldført" + +#: stock/status_codes.py:77 +msgid "Build order output rejected" +msgstr "" + +#: stock/status_codes.py:78 templates/js/translated/stock.js:1764 +msgid "Consumed by build order" +msgstr "Brugt efter byggeordre" + +#: stock/status_codes.py:81 +msgid "Shipped against Sales Order" +msgstr "Afsendt mod salgsordre" + +#: stock/status_codes.py:84 +msgid "Received against Purchase Order" +msgstr "Modtaget mod indkøbsordre" + +#: stock/status_codes.py:87 +msgid "Returned against Return Order" +msgstr "Returneret mod returordre" + +#: stock/status_codes.py:90 templates/js/translated/table_filters.js:375 +msgid "Sent to customer" +msgstr "Sendt til kunde" + +#: stock/status_codes.py:91 +msgid "Returned from customer" +msgstr "Returneret fra kunde" + #: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" @@ -9319,7 +9504,7 @@ msgstr "" msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:286 +#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:276 msgid "Delete Test Data" msgstr "" @@ -9339,11 +9524,11 @@ msgstr "" msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:274 +#: stock/templates/stock/item.html:264 msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1698 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1701 msgid "Add Test Result" msgstr "" @@ -9366,17 +9551,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1821 +#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1824 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1806 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1815 msgid "Remove stock" msgstr "" @@ -9385,12 +9570,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1830 +#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1833 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1884 +#: templates/js/translated/stock.js:1887 msgid "Assign to customer" msgstr "" @@ -9431,7 +9616,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2121 templates/navbar.html:38 +#: templates/js/translated/build.js:2123 templates/navbar.html:38 msgid "Build" msgstr "" @@ -9497,7 +9682,7 @@ msgid "Available Quantity" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2378 +#: templates/js/translated/build.js:2380 msgid "No location set" msgstr "" @@ -9528,40 +9713,40 @@ msgstr "" msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:507 -#: templates/js/translated/stock.js:1951 +#: stock/templates/stock/item_base.html:504 +#: templates/js/translated/stock.js:1952 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:532 +#: stock/templates/stock/item_base.html:527 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:541 +#: stock/templates/stock/item_base.html:536 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:552 +#: stock/templates/stock/item_base.html:547 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:616 +#: stock/templates/stock/item_base.html:611 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:619 +#: stock/templates/stock/item_base.html:614 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:620 +#: stock/templates/stock/item_base.html:615 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:628 +#: stock/templates/stock/item_base.html:623 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:662 +#: stock/templates/stock/item_base.html:657 msgid "Return to Stock" msgstr "" @@ -9625,28 +9810,32 @@ msgstr "" msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:217 +#: stock/templates/stock/location.html:176 +msgid "Location Type" +msgstr "" + +#: stock/templates/stock/location.html:226 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:218 +#: stock/templates/stock/location.html:227 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:287 +#: stock/templates/stock/location.html:297 #: templates/js/translated/stock.js:2572 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:315 +#: stock/templates/stock/location.html:319 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:388 +#: stock/templates/stock/location.html:392 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:399 +#: stock/templates/stock/location.html:403 msgid "Link Barcode to Stock Location" msgstr "" @@ -9872,12 +10061,12 @@ msgstr "" msgid "Outgoing email has not been configured. Some login and sign-up features may not work correctly!" msgstr "" -#: templates/InvenTree/settings/login.html:25 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:27 templates/account/signup.html:5 #: templates/socialaccount/signup.html:5 msgid "Signup" msgstr "" -#: templates/InvenTree/settings/login.html:34 +#: templates/InvenTree/settings/login.html:36 msgid "Single Sign On" msgstr "" @@ -9916,11 +10105,11 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:42 +#: templates/InvenTree/settings/part.html:43 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:46 +#: templates/InvenTree/settings/part.html:47 msgid "Import Part" msgstr "" @@ -9954,36 +10143,36 @@ msgstr "" msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:36 +#: templates/InvenTree/settings/plugin.html:38 #: templates/InvenTree/settings/sidebar.html:66 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:42 -#: templates/InvenTree/settings/plugin.html:43 +#: templates/InvenTree/settings/plugin.html:44 +#: templates/InvenTree/settings/plugin.html:45 #: templates/js/translated/plugin.js:151 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:45 -#: templates/InvenTree/settings/plugin.html:46 +#: templates/InvenTree/settings/plugin.html:47 +#: templates/InvenTree/settings/plugin.html:48 #: templates/js/translated/plugin.js:224 msgid "Reload Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:56 +#: templates/InvenTree/settings/plugin.html:58 msgid "External plugins are not enabled for this InvenTree installation" msgstr "" -#: templates/InvenTree/settings/plugin.html:71 +#: templates/InvenTree/settings/plugin.html:73 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:80 +#: templates/InvenTree/settings/plugin.html:82 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:82 +#: templates/InvenTree/settings/plugin.html:84 #: templates/js/translated/notification.js:76 msgid "Message" msgstr "" @@ -10070,20 +10259,20 @@ msgstr "" msgid "Pricing Settings" msgstr "" -#: templates/InvenTree/settings/pricing.html:34 +#: templates/InvenTree/settings/pricing.html:35 msgid "Exchange Rates" msgstr "" -#: templates/InvenTree/settings/pricing.html:38 +#: templates/InvenTree/settings/pricing.html:39 msgid "Update Now" msgstr "" -#: templates/InvenTree/settings/pricing.html:46 -#: templates/InvenTree/settings/pricing.html:50 +#: templates/InvenTree/settings/pricing.html:47 +#: templates/InvenTree/settings/pricing.html:51 msgid "Last Update" msgstr "" -#: templates/InvenTree/settings/pricing.html:50 +#: templates/InvenTree/settings/pricing.html:51 msgid "Never" msgstr "" @@ -10140,8 +10329,8 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:547 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:424 +#: templates/js/translated/part.js:393 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:245 users/models.py:402 msgid "Delete" msgstr "" @@ -10162,7 +10351,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2226 +#: templates/js/translated/build.js:2228 msgid "group" msgstr "" @@ -10181,12 +10370,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1645 +#: templates/js/translated/part.js:1646 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1646 +#: templates/js/translated/part.js:1647 msgid "Delete Template" msgstr "" @@ -10228,7 +10417,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:500 -#: templates/InvenTree/settings/stock.html:37 +#: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -10250,7 +10439,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2159 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2167 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" @@ -10285,7 +10474,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:33 +#: templates/InvenTree/settings/stock.html:34 msgid "Stock Location Types" msgstr "" @@ -10384,49 +10573,49 @@ msgstr "" msgid "Remove multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:171 msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 +#: templates/InvenTree/settings/user.html:177 msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:175 +#: templates/InvenTree/settings/user.html:178 msgid "Log Out Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:184 +#: templates/InvenTree/settings/user.html:187 msgid "unknown on unknown" msgstr "" -#: templates/InvenTree/settings/user.html:185 +#: templates/InvenTree/settings/user.html:188 msgid "unknown" msgstr "" -#: templates/InvenTree/settings/user.html:189 +#: templates/InvenTree/settings/user.html:192 msgid "IP Address" msgstr "" -#: templates/InvenTree/settings/user.html:190 +#: templates/InvenTree/settings/user.html:193 msgid "Device" msgstr "" -#: templates/InvenTree/settings/user.html:191 +#: templates/InvenTree/settings/user.html:194 msgid "Last Activity" msgstr "" -#: templates/InvenTree/settings/user.html:204 +#: templates/InvenTree/settings/user.html:207 #, python-format msgid "%(time)s ago (this session)" msgstr "" -#: templates/InvenTree/settings/user.html:206 +#: templates/InvenTree/settings/user.html:209 #, python-format msgid "%(time)s ago" msgstr "" -#: templates/InvenTree/settings/user.html:218 +#: templates/InvenTree/settings/user.html:223 msgid "Do you really want to remove the selected email address?" msgstr "" @@ -10576,7 +10765,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:585 +#: templates/js/translated/helpers.js:589 msgid "copy to clipboard" msgstr "" @@ -10607,26 +10796,26 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:17 -#: templates/account/login.html:38 templates/socialaccount/login.html:5 +#: templates/account/login.html:6 templates/account/login.html:19 +#: templates/account/login.html:40 templates/socialaccount/login.html:5 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:23 msgid "Not a member?" msgstr "" -#: templates/account/login.html:23 templates/account/signup.html:11 +#: templates/account/login.html:25 templates/account/signup.html:11 #: templates/account/signup.html:22 templates/socialaccount/signup.html:8 #: templates/socialaccount/signup.html:23 msgid "Sign Up" msgstr "" -#: templates/account/login.html:45 +#: templates/account/login.html:47 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:53 +#: templates/account/login.html:55 msgid "or log in with" msgstr "" @@ -10640,7 +10829,7 @@ msgid "Are you sure you want to sign out?" msgstr "" #: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35 -#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:44 +#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:45 msgid "Return to Site" msgstr "" @@ -10754,15 +10943,19 @@ msgstr "" msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." msgstr "" -#: templates/allauth_2fa/setup.html:23 +#: templates/allauth_2fa/setup.html:20 +msgid "Secret: " +msgstr "" + +#: templates/allauth_2fa/setup.html:24 msgid "Step 2" msgstr "" -#: templates/allauth_2fa/setup.html:27 +#: templates/allauth_2fa/setup.html:28 msgid "Input a token generated by the app:" msgstr "" -#: templates/allauth_2fa/setup.html:37 +#: templates/allauth_2fa/setup.html:38 msgid "Verify" msgstr "" @@ -10827,7 +11020,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:2557 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2556 msgid "Required Quantity" msgstr "" @@ -10841,7 +11034,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3218 +#: templates/js/translated/part.js:3219 msgid "Minimum Quantity" msgstr "" @@ -10929,27 +11122,27 @@ msgstr "" msgid "Delete attachments" msgstr "" -#: templates/js/translated/attachment.js:253 +#: templates/js/translated/attachment.js:260 msgid "Attachment actions" msgstr "" -#: templates/js/translated/attachment.js:275 +#: templates/js/translated/attachment.js:294 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:315 +#: templates/js/translated/attachment.js:334 msgid "Edit Attachment" msgstr "" -#: templates/js/translated/attachment.js:346 +#: templates/js/translated/attachment.js:365 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:366 +#: templates/js/translated/attachment.js:385 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:374 +#: templates/js/translated/attachment.js:393 msgid "Delete attachment" msgstr "" @@ -11006,7 +11199,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155 +#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1158 msgid "Remove stock item" msgstr "" @@ -11196,7 +11389,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2501 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2500 msgid "Variant stock allowed" msgstr "" @@ -11216,30 +11409,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2622 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2621 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2596 -#: templates/js/translated/sales_order.js:1910 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2595 +#: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2600 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2599 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2602 -#: templates/js/translated/part.js:1256 -#: templates/js/translated/sales_order.js:1907 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2601 +#: templates/js/translated/part.js:1257 +#: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2604 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2603 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2587 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2586 msgid "Consumable item" msgstr "" @@ -11271,7 +11464,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2486 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2485 msgid "Required Part" msgstr "" @@ -11440,207 +11633,207 @@ msgstr "" msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:989 templates/js/translated/build.js:2342 +#: templates/js/translated/build.js:991 templates/js/translated/build.js:2344 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/build.js:1003 +#: templates/js/translated/build.js:1005 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1025 +#: templates/js/translated/build.js:1027 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1043 +#: templates/js/translated/build.js:1045 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1061 +#: templates/js/translated/build.js:1063 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1115 +#: templates/js/translated/build.js:1116 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1116 +#: templates/js/translated/build.js:1117 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1120 +#: templates/js/translated/build.js:1121 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1387 +#: templates/js/translated/build.js:1390 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1401 +#: templates/js/translated/build.js:1404 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:1576 #: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1171 +#: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1574 -#: templates/js/translated/sales_order.js:1172 +#: templates/js/translated/build.js:1577 +#: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1637 -#: templates/js/translated/sales_order.js:1121 +#: templates/js/translated/build.js:1640 +#: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1714 +#: templates/js/translated/build.js:1717 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1715 +#: templates/js/translated/build.js:1718 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1729 -#: templates/js/translated/sales_order.js:1186 +#: templates/js/translated/build.js:1732 +#: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1757 +#: templates/js/translated/build.js:1760 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1768 -#: templates/js/translated/sales_order.js:1283 +#: templates/js/translated/build.js:1771 +#: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1841 -#: templates/js/translated/sales_order.js:1362 +#: templates/js/translated/build.js:1844 +#: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1938 +#: templates/js/translated/build.js:1941 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1939 +#: templates/js/translated/build.js:1942 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1941 +#: templates/js/translated/build.js:1944 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1942 +#: templates/js/translated/build.js:1945 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:1946 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:1974 +#: templates/js/translated/build.js:1977 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2080 +#: templates/js/translated/build.js:2082 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2115 templates/js/translated/build.js:2480 -#: templates/js/translated/forms.js:2155 templates/js/translated/forms.js:2171 +#: templates/js/translated/build.js:2117 templates/js/translated/build.js:2479 +#: templates/js/translated/forms.js:2163 templates/js/translated/forms.js:2179 #: templates/js/translated/part.js:2316 templates/js/translated/part.js:2742 -#: templates/js/translated/stock.js:1982 templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:1983 templates/js/translated/stock.js:2710 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2131 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2175 -msgid "Progress" -msgstr "" - -#: templates/js/translated/build.js:2211 templates/js/translated/stock.js:3042 +#: templates/js/translated/build.js:2213 templates/js/translated/stock.js:3042 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2387 -#: templates/js/translated/sales_order.js:1646 +#: templates/js/translated/build.js:2389 +#: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2388 -#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/build.js:2390 +#: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2405 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2415 +#: templates/js/translated/build.js:2417 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2456 +#: templates/js/translated/build.js:2455 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2457 +#: templates/js/translated/build.js:2456 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2475 +#: templates/js/translated/build.js:2474 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2505 templates/js/translated/part.js:790 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/build.js:2504 templates/js/translated/part.js:791 +#: templates/js/translated/part.js:1203 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2540 +#: templates/js/translated/build.js:2539 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2592 -#: templates/js/translated/sales_order.js:1915 +#: templates/js/translated/build.js:2591 +#: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2646 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2653 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2659 -#: templates/js/translated/sales_order.js:2016 +#: templates/js/translated/build.js:2654 +msgid "Allocate tracked items against individual build outputs" +msgstr "" + +#: templates/js/translated/build.js:2662 +#: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2664 templates/js/translated/stock.js:1865 +#: templates/js/translated/build.js:2667 templates/js/translated/stock.js:1868 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2668 -#: templates/js/translated/sales_order.js:2010 +#: templates/js/translated/build.js:2671 +#: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2672 +#: templates/js/translated/build.js:2675 msgid "Remove stock allocation" msgstr "" @@ -11787,7 +11980,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2244 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2245 msgid "Order parts" msgstr "" @@ -11804,34 +11997,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 -#: templates/js/translated/part.js:1210 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:799 +#: templates/js/translated/part.js:1211 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 -#: templates/js/translated/part.js:1214 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:803 +#: templates/js/translated/part.js:1215 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1464 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1465 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1527 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1528 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1528 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1529 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1433 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1434 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1549 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1550 msgid "Delete Parameter" msgstr "" @@ -11886,12 +12079,12 @@ msgid "Delete price break" msgstr "" #: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:672 +#: templates/js/translated/filters.js:667 msgid "true" msgstr "" #: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:673 +#: templates/js/translated/filters.js:668 msgid "false" msgstr "" @@ -11923,7 +12116,7 @@ msgstr "" msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:582 +#: templates/js/translated/filters.js:577 msgid "Create filter" msgstr "" @@ -11956,32 +12149,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1473 templates/modals.html:19 +#: templates/js/translated/forms.js:1477 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1971 +#: templates/js/translated/forms.js:1975 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2275 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2285 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2489 +#: templates/js/translated/forms.js:2499 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3103 +#: templates/js/translated/forms.js:3113 msgid "Select Columns" msgstr "" @@ -12005,51 +12198,15 @@ msgstr "" msgid "No parts required for builds" msgstr "" -#: templates/js/translated/label.js:53 templates/js/translated/report.js:123 +#: templates/js/translated/label.js:55 templates/js/translated/report.js:38 msgid "Select Items" msgstr "" -#: templates/js/translated/label.js:54 +#: templates/js/translated/label.js:56 templates/js/translated/report.js:39 msgid "No items selected for printing" msgstr "" -#: templates/js/translated/label.js:72 -msgid "No Labels Found" -msgstr "" - -#: templates/js/translated/label.js:73 -msgid "No label templates found which match the selected items" -msgstr "" - -#: templates/js/translated/label.js:97 -msgid "selected" -msgstr "" - -#: templates/js/translated/label.js:133 -msgid "Printing Options" -msgstr "" - -#: templates/js/translated/label.js:148 -msgid "Print label" -msgstr "" - -#: templates/js/translated/label.js:148 -msgid "Print labels" -msgstr "" - -#: templates/js/translated/label.js:149 -msgid "Print" -msgstr "" - -#: templates/js/translated/label.js:155 -msgid "Select label template" -msgstr "" - -#: templates/js/translated/label.js:168 -msgid "Select plugin" -msgstr "" - -#: templates/js/translated/label.js:187 +#: templates/js/translated/label.js:150 msgid "Labels sent to printer" msgstr "" @@ -12118,7 +12275,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1604 +#: templates/js/translated/part.js:1605 msgid "ID" msgstr "" @@ -12167,7 +12324,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:1991 +#: templates/js/translated/purchase_order.js:1990 msgid "No line items found" msgstr "" @@ -12199,249 +12356,249 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:308 +#: templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:332 templates/js/translated/stock.js:175 +#: templates/js/translated/part.js:333 templates/js/translated/stock.js:175 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:355 +#: templates/js/translated/part.js:356 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:356 +#: templates/js/translated/part.js:357 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:370 +#: templates/js/translated/part.js:371 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:383 +#: templates/js/translated/part.js:384 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:388 +#: templates/js/translated/part.js:389 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:397 +#: templates/js/translated/part.js:398 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:401 +#: templates/js/translated/part.js:402 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:406 +#: templates/js/translated/part.js:407 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:431 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:433 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:433 +#: templates/js/translated/part.js:434 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:461 +#: templates/js/translated/part.js:462 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:464 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:474 +#: templates/js/translated/part.js:475 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:532 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:532 +#: templates/js/translated/part.js:533 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:546 +#: templates/js/translated/part.js:547 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:549 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:549 +#: templates/js/translated/part.js:550 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:551 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:557 +#: templates/js/translated/part.js:558 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:593 +#: templates/js/translated/part.js:594 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:596 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:600 +#: templates/js/translated/part.js:601 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:603 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:619 +#: templates/js/translated/part.js:620 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:629 +#: templates/js/translated/part.js:630 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:632 +#: templates/js/translated/part.js:633 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:657 +#: templates/js/translated/part.js:658 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:685 +#: templates/js/translated/part.js:686 #: templates/js/translated/table_filters.js:747 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:688 +#: templates/js/translated/part.js:689 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:748 +#: templates/js/translated/part.js:749 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:771 +#: templates/js/translated/part.js:772 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:794 templates/js/translated/part.js:1206 +#: templates/js/translated/part.js:795 templates/js/translated/part.js:1207 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:806 +#: templates/js/translated/part.js:807 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:810 +#: templates/js/translated/part.js:811 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:897 +#: templates/js/translated/part.js:898 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:901 +#: templates/js/translated/part.js:902 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1050 +#: templates/js/translated/part.js:1051 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1144 +#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1145 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1154 +#: templates/js/translated/part.js:1113 templates/js/translated/part.js:1155 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1281 +#: templates/js/translated/part.js:1282 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:1600 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1662 +#: templates/js/translated/part.js:1663 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1674 +#: templates/js/translated/part.js:1675 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1683 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1716 -#: templates/js/translated/purchase_order.js:1655 +#: templates/js/translated/part.js:1717 +#: templates/js/translated/purchase_order.js:1654 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1860 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/return_order.js:756 -#: templates/js/translated/sales_order.js:1875 +#: templates/js/translated/part.js:1861 +#: templates/js/translated/purchase_order.js:2153 +#: templates/js/translated/return_order.js:755 +#: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1906 -#: templates/js/translated/purchase_order.js:2221 +#: templates/js/translated/part.js:1907 +#: templates/js/translated/purchase_order.js:2220 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1969 +#: templates/js/translated/part.js:1970 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1991 +#: templates/js/translated/part.js:1992 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2079 templates/js/translated/part.js:2506 +#: templates/js/translated/part.js:2080 templates/js/translated/part.js:2506 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2200 +#: templates/js/translated/part.js:2201 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2205 +#: templates/js/translated/part.js:2206 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2235 +#: templates/js/translated/part.js:2236 msgid "Set category" msgstr "" @@ -12482,64 +12639,64 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2864 +#: templates/js/translated/part.js:2865 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2886 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2887 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2936 templates/js/translated/stock.js:1453 +#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1456 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1454 -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/part.js:2938 templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1731 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2941 +#: templates/js/translated/part.js:2942 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2958 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2971 +#: templates/js/translated/part.js:2972 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3050 templates/js/translated/part.js:3051 +#: templates/js/translated/part.js:3051 templates/js/translated/part.js:3052 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3053 +#: templates/js/translated/part.js:3054 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3059 +#: templates/js/translated/part.js:3060 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3109 +#: templates/js/translated/part.js:3110 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3115 +#: templates/js/translated/part.js:3116 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3211 +#: templates/js/translated/part.js:3212 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3227 +#: templates/js/translated/part.js:3228 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3272 +#: templates/js/translated/part.js:3273 msgid "Minimum Stock Level" msgstr "" @@ -12665,7 +12822,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:448 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:552 msgid "Mark this order as complete?" msgstr "" @@ -12678,7 +12835,6 @@ msgid "This order has line items which have not been marked as received." msgstr "" #: templates/js/translated/purchase_order.js:460 -#: templates/js/translated/sales_order.js:514 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" @@ -12736,12 +12892,12 @@ msgid "No matching purchase orders" msgstr "" #: templates/js/translated/purchase_order.js:1073 -#: templates/js/translated/return_order.js:491 +#: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" #: templates/js/translated/purchase_order.js:1074 -#: templates/js/translated/return_order.js:492 +#: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" @@ -12790,7 +12946,7 @@ msgid "Quantity to Receive" msgstr "" #: templates/js/translated/purchase_order.js:1333 -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Confirm receipt of items" msgstr "" @@ -12810,81 +12966,66 @@ msgstr "" msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1682 -#: templates/js/translated/return_order.js:286 -#: templates/js/translated/sales_order.js:774 -#: templates/js/translated/sales_order.js:998 +#: templates/js/translated/purchase_order.js:1681 +#: 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:1748 -#: templates/js/translated/return_order.js:354 -#: templates/js/translated/sales_order.js:851 -#: templates/js/translated/sales_order.js:1011 -msgid "Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:1844 +#: templates/js/translated/purchase_order.js:1843 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1862 +#: templates/js/translated/purchase_order.js:1861 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1917 -#: templates/js/translated/sales_order.js:2070 +#: templates/js/translated/purchase_order.js:1916 +#: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1932 -#: templates/js/translated/return_order.js:476 -#: templates/js/translated/return_order.js:669 -#: templates/js/translated/sales_order.js:2083 +#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/return_order.js:475 +#: templates/js/translated/return_order.js:668 +#: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1943 -#: templates/js/translated/return_order.js:682 -#: templates/js/translated/sales_order.js:2094 +#: templates/js/translated/purchase_order.js:1942 +#: templates/js/translated/return_order.js:681 +#: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2225 -#: templates/js/translated/sales_order.js:2024 +#: templates/js/translated/purchase_order.js:2224 +#: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2226 -#: templates/js/translated/return_order.js:801 -#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/purchase_order.js:2225 +#: templates/js/translated/return_order.js:800 +#: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2227 -#: templates/js/translated/return_order.js:805 -#: templates/js/translated/sales_order.js:2031 +#: templates/js/translated/purchase_order.js:2226 +#: templates/js/translated/return_order.js:804 +#: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:63 -msgid "items selected" +#: templates/js/translated/report.js:49 +msgid "Print Report" msgstr "" -#: templates/js/translated/report.js:71 -msgid "Select Report Template" +#: templates/js/translated/report.js:68 +msgid "Report print successful" msgstr "" -#: templates/js/translated/report.js:86 -msgid "Select Test Report Template" -msgstr "" - -#: templates/js/translated/report.js:140 -msgid "No Reports Found" -msgstr "" - -#: templates/js/translated/report.js:141 -msgid "No report templates found which match the selected items" +#: templates/js/translated/report.js:73 +msgid "Report printing failed" msgstr "" #: templates/js/translated/return_order.js:60 @@ -12916,25 +13057,25 @@ msgstr "" msgid "Complete Return Order" msgstr "" -#: templates/js/translated/return_order.js:266 +#: templates/js/translated/return_order.js:265 msgid "No return orders found" msgstr "" -#: templates/js/translated/return_order.js:300 -#: templates/js/translated/sales_order.js:788 +#: templates/js/translated/return_order.js:299 +#: templates/js/translated/sales_order.js:824 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:562 +#: templates/js/translated/return_order.js:561 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:693 -#: templates/js/translated/sales_order.js:2231 +#: templates/js/translated/return_order.js:692 +#: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:798 +#: templates/js/translated/return_order.js:797 msgid "Mark item as received" msgstr "" @@ -12978,140 +13119,156 @@ msgstr "" msgid "Skip" msgstr "" +#: templates/js/translated/sales_order.js:484 +msgid "Ship Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:500 +msgid "Ship this order?" +msgstr "" + +#: templates/js/translated/sales_order.js:506 +msgid "Order cannot be shipped as there are incomplete shipments" +msgstr "" + #: templates/js/translated/sales_order.js:513 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:535 +#: templates/js/translated/sales_order.js:514 +msgid "Shipping this order means that the order and line items will no longer be editable." +msgstr "" + +#: templates/js/translated/sales_order.js:572 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:540 +#: templates/js/translated/sales_order.js:577 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:559 +#: templates/js/translated/sales_order.js:596 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:564 +#: templates/js/translated/sales_order.js:601 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:618 +#: templates/js/translated/sales_order.js:655 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:728 +#: templates/js/translated/sales_order.js:764 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:908 +#: templates/js/translated/sales_order.js:944 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:911 +#: templates/js/translated/sales_order.js:947 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:916 +#: templates/js/translated/sales_order.js:952 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:933 +#: templates/js/translated/sales_order.js:969 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:948 +#: templates/js/translated/sales_order.js:984 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:981 +#: templates/js/translated/sales_order.js:1017 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1006 +#: templates/js/translated/sales_order.js:1042 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1030 -#: templates/js/translated/sales_order.js:1529 +#: templates/js/translated/sales_order.js:1066 +#: templates/js/translated/sales_order.js:1565 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1048 +#: templates/js/translated/sales_order.js:1084 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1052 +#: templates/js/translated/sales_order.js:1088 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1219 +#: templates/js/translated/sales_order.js:1255 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1270 +#: templates/js/translated/sales_order.js:1306 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1271 +#: templates/js/translated/sales_order.js:1307 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1477 +#: templates/js/translated/sales_order.js:1513 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1569 +#: templates/js/translated/sales_order.js:1605 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1583 +#: templates/js/translated/sales_order.js:1619 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1584 +#: templates/js/translated/sales_order.js:1620 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1623 -#: templates/js/translated/sales_order.js:1710 -#: templates/js/translated/stock.js:1773 +#: templates/js/translated/sales_order.js:1659 +#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/stock.js:1776 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1631 -#: templates/js/translated/sales_order.js:1719 +#: templates/js/translated/sales_order.js:1667 +#: templates/js/translated/sales_order.js:1755 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2008 +#: templates/js/translated/sales_order.js:2044 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/sales_order.js:2012 +#: templates/js/translated/sales_order.js:2048 msgid "Purchase stock" msgstr "" -#: templates/js/translated/sales_order.js:2021 -#: templates/js/translated/sales_order.js:2209 +#: templates/js/translated/sales_order.js:2057 +#: templates/js/translated/sales_order.js:2245 msgid "Calculate price" msgstr "" -#: templates/js/translated/sales_order.js:2035 +#: templates/js/translated/sales_order.js:2071 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2074 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/sales_order.js:2109 +#: templates/js/translated/sales_order.js:2145 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2217 +#: templates/js/translated/sales_order.js:2253 msgid "Update Unit Price" msgstr "" @@ -13319,7 +13476,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:414 +#: templates/js/translated/stock.js:1042 users/models.py:392 msgid "Add" msgstr "" @@ -13327,180 +13484,180 @@ msgstr "" msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:1180 templates/js/translated/stock.js:3299 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1178 +#: templates/js/translated/stock.js:1181 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1224 +#: templates/js/translated/stock.js:1227 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1360 +#: templates/js/translated/stock.js:1363 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1362 +#: templates/js/translated/stock.js:1365 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1367 +#: templates/js/translated/stock.js:1370 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1447 +#: templates/js/translated/stock.js:1450 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1450 +#: templates/js/translated/stock.js:1453 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1473 +#: templates/js/translated/stock.js:1476 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1540 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1550 +#: templates/js/translated/stock.js:1553 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1562 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1713 +#: templates/js/translated/stock.js:1716 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1733 +#: templates/js/translated/stock.js:1736 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1765 +#: templates/js/translated/stock.js:1768 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1769 +#: templates/js/translated/stock.js:1772 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1777 +#: templates/js/translated/stock.js:1780 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1786 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1839 +#: templates/js/translated/stock.js:1842 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1848 +#: templates/js/translated/stock.js:1851 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1897 +#: templates/js/translated/stock.js:1900 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:1952 +#: templates/js/translated/stock.js:1953 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:1957 +#: templates/js/translated/stock.js:1958 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1969 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2012 +#: templates/js/translated/stock.js:2013 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2090 +#: templates/js/translated/stock.js:2091 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2095 +#: templates/js/translated/stock.js:2096 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2101 +#: templates/js/translated/stock.js:2102 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2103 +#: templates/js/translated/stock.js:2104 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2105 +#: templates/js/translated/stock.js:2106 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2108 +#: templates/js/translated/stock.js:2109 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2110 +#: templates/js/translated/stock.js:2111 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2114 +#: templates/js/translated/stock.js:2115 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2116 +#: templates/js/translated/stock.js:2117 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2123 +#: templates/js/translated/stock.js:2124 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2125 +#: templates/js/translated/stock.js:2126 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2129 +#: templates/js/translated/stock.js:2130 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2294 +#: templates/js/translated/stock.js:2295 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2342 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2469 +#: templates/js/translated/stock.js:2470 msgid "No stock items matching query" msgstr "" @@ -13973,6 +14130,22 @@ msgstr "" msgid "Show all notifications and history" msgstr "" +#: templates/pui_banner.html:9 +msgid "Platform UI - the new UI for InvenTree - provides more modern administration options." +msgstr "" + +#: templates/pui_banner.html:12 +msgid "Platform UI - the new UI for InvenTree - is ready to be tested." +msgstr "" + +#: templates/pui_banner.html:15 +msgid "Try it out now" +msgstr "" + +#: templates/pui_banner.html:15 +msgid "here" +msgstr "" + #: templates/qr_code.html:11 msgid "QR data not provided" msgstr "" @@ -14194,35 +14367,34 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:397 +#: users/models.py:375 msgid "Permission set" msgstr "" -#: users/models.py:406 +#: users/models.py:384 msgid "Group" msgstr "" -#: users/models.py:410 +#: users/models.py:388 msgid "View" msgstr "" -#: users/models.py:410 +#: users/models.py:388 msgid "Permission to view items" msgstr "" -#: users/models.py:414 +#: users/models.py:392 msgid "Permission to add items" msgstr "" -#: users/models.py:418 +#: users/models.py:396 msgid "Change" msgstr "" -#: users/models.py:420 +#: users/models.py:398 msgid "Permissions to edit items" msgstr "" -#: users/models.py:426 +#: users/models.py:404 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po index 8eca26f95c..d2a1e8f24a 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-04-20 13:19+0000\n" -"PO-Revision-Date: 2024-04-21 04:19\n" +"POT-Creation-Date: 2024-06-19 04:39+0000\n" +"PO-Revision-Date: 2024-06-19 04:49\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -17,11 +17,11 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 216\n" -#: InvenTree/api.py:255 +#: InvenTree/api.py:272 msgid "API endpoint not found" msgstr "API-Endpunkt nicht gefunden" -#: InvenTree/api.py:519 +#: InvenTree/api.py:520 msgid "User does not have permission to view this model" msgstr "Benutzer hat keine Berechtigung, dieses Modell anzuzeigen" @@ -52,30 +52,30 @@ msgstr "Ungültige Menge ({exc})" msgid "Error details can be found in the admin panel" msgstr "Fehlerdetails finden Sie im Admin-Panel" -#: InvenTree/fields.py:139 +#: InvenTree/fields.py:136 msgid "Enter date" msgstr "Datum eingeben" -#: InvenTree/fields.py:208 InvenTree/models.py:1021 build/serializers.py:438 -#: build/serializers.py:516 build/templates/build/sidebar.html:21 -#: company/models.py:847 company/templates/company/sidebar.html:37 -#: order/models.py:1283 order/templates/order/po_sidebar.html:11 +#: InvenTree/fields.py:205 InvenTree/models.py:918 build/serializers.py:452 +#: build/serializers.py:530 build/templates/build/sidebar.html:21 +#: company/models.py:817 company/templates/company/sidebar.html:37 +#: order/models.py:1296 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:3175 part/templates/part/part_sidebar.html:63 -#: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:226 stock/models.py:2332 stock/models.py:2449 -#: stock/serializers.py:501 stock/serializers.py:659 stock/serializers.py:755 -#: stock/serializers.py:805 stock/serializers.py:1114 stock/serializers.py:1203 -#: stock/serializers.py:1368 stock/templates/stock/stock_sidebar.html:25 +#: part/models.py:3183 part/templates/part/part_sidebar.html:63 +#: report/templates/report/inventree_build_order_report.html:172 +#: stock/admin.py:230 stock/models.py:2309 stock/models.py:2431 +#: stock/serializers.py:632 stock/serializers.py:790 stock/serializers.py:886 +#: stock/serializers.py:936 stock/serializers.py:1230 stock/serializers.py:1319 +#: stock/serializers.py:1484 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:1080 -#: templates/js/translated/purchase_order.js:2201 -#: templates/js/translated/return_order.js:776 -#: templates/js/translated/sales_order.js:1067 -#: templates/js/translated/sales_order.js:1982 -#: templates/js/translated/stock.js:1533 templates/js/translated/stock.js:2427 +#: templates/js/translated/part.js:1081 +#: templates/js/translated/purchase_order.js:2200 +#: templates/js/translated/return_order.js:775 +#: templates/js/translated/sales_order.js:1103 +#: templates/js/translated/sales_order.js:2018 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:2428 msgid "Notes" msgstr "Notizen" @@ -120,19 +120,19 @@ msgstr "Bestätigung der E-Mail Adresse" msgid "You must type the same email each time." msgstr "E-Mail Adressen müssen übereinstimmen." -#: InvenTree/forms.py:253 InvenTree/forms.py:261 +#: InvenTree/forms.py:248 InvenTree/forms.py:256 msgid "The provided primary email address is not valid." msgstr "Die angegebene primäre E-Mail-Adresse ist ungültig." -#: InvenTree/forms.py:268 +#: InvenTree/forms.py:263 msgid "The provided email domain is not approved." msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben." -#: InvenTree/forms.py:395 +#: InvenTree/forms.py:390 msgid "Registration is disabled." msgstr "Registrierung ist deaktiviert." -#: InvenTree/helpers.py:525 order/models.py:541 order/models.py:743 +#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:764 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -171,35 +171,35 @@ msgstr "Anzahl der eindeutigen Seriennummern ({len(serials)}) muss mit der Menge msgid "Remove HTML tags from this value" msgstr "Entferne HTML-Tags von diesem Wert" -#: InvenTree/helpers_model.py:150 +#: InvenTree/helpers_model.py:140 msgid "Connection error" msgstr "Verbindungsfehler" -#: InvenTree/helpers_model.py:155 InvenTree/helpers_model.py:162 +#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 msgid "Server responded with invalid status code" msgstr "Server antwortete mit ungültigem Statuscode" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:148 msgid "Exception occurred" msgstr "Ausnahme aufgetreten" -#: InvenTree/helpers_model.py:168 +#: InvenTree/helpers_model.py:158 msgid "Server responded with invalid Content-Length value" msgstr "Server antwortete mit ungültigem Wert für die Inhaltslänge" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:161 msgid "Image size is too large" msgstr "Bild ist zu groß" -#: InvenTree/helpers_model.py:183 +#: InvenTree/helpers_model.py:173 msgid "Image download exceeded maximum size" msgstr "Bilddownload überschreitet maximale Größe" -#: InvenTree/helpers_model.py:188 +#: InvenTree/helpers_model.py:178 msgid "Remote server returned empty response" msgstr "Remote-Server gab leere Antwort zurück" -#: InvenTree/helpers_model.py:196 +#: InvenTree/helpers_model.py:186 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" @@ -253,7 +253,7 @@ msgstr "Hebräisch" #: InvenTree/locales.py:30 msgid "Hindi" -msgstr "" +msgstr "Hinduistisch" #: InvenTree/locales.py:31 msgid "Hungarian" @@ -296,42 +296,50 @@ msgid "Portuguese (Brazilian)" msgstr "Portugiesisch (Brasilien)" #: InvenTree/locales.py:41 +msgid "Romanian" +msgstr "" + +#: InvenTree/locales.py:42 msgid "Russian" msgstr "Russisch" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:43 msgid "Slovak" msgstr "Slowakisch" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:44 msgid "Slovenian" msgstr "Slowenisch" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:45 msgid "Serbian" msgstr "Serbisch" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:46 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:47 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:48 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:49 +msgid "Ukrainian" +msgstr "Ukrainisch" + +#: InvenTree/locales.py:50 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:51 msgid "Chinese (Simplified)" msgstr "Chinesisch (Vereinfacht)" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:52 msgid "Chinese (Traditional)" msgstr "Chinesisch (Traditionell)" @@ -340,156 +348,68 @@ msgstr "Chinesisch (Traditionell)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] In App einloggen" -#: InvenTree/magic_login.py:38 company/models.py:133 +#: InvenTree/magic_login.py:38 company/models.py:136 #: company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 msgid "Email" -msgstr "" +msgstr "Email" -#: InvenTree/models.py:107 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Fehler beim Ausführen der Plugin Validierung" -#: InvenTree/models.py:162 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadaten müssen ein Python-Dict Objekt sein" -#: InvenTree/models.py:168 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Plugin Metadaten" -#: InvenTree/models.py:169 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins" -#: InvenTree/models.py:399 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Falsch formatiertes Muster" -#: InvenTree/models.py:406 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Unbekannter Formatschlüssel angegeben" -#: InvenTree/models.py:412 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Erforderlicher Formatschlüssel fehlt" -#: InvenTree/models.py:423 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referenz-Feld darf nicht leer sein" -#: InvenTree/models.py:431 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referenz muss erforderlichem Muster entsprechen" -#: InvenTree/models.py:462 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referenznummer ist zu groß" -#: InvenTree/models.py:536 -msgid "Missing file" -msgstr "Fehlende Datei" - -#: InvenTree/models.py:537 -msgid "Missing external link" -msgstr "Fehlender externer Link" - -#: InvenTree/models.py:558 stock/models.py:2444 -#: templates/js/translated/attachment.js:119 -#: templates/js/translated/attachment.js:326 -msgid "Attachment" -msgstr "Anhang" - -#: InvenTree/models.py:559 -msgid "Select file to attach" -msgstr "Datei zum Anhängen auswählen" - -#: InvenTree/models.py:567 common/models.py:3018 company/models.py:146 -#: company/models.py:457 company/models.py:514 company/models.py:830 -#: order/models.py:291 order/models.py:1288 order/models.py:1702 -#: part/admin.py:55 part/models.py:919 -#: part/templates/part/part_scheduling.html:11 -#: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:225 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2456 -#: templates/js/translated/purchase_order.js:2041 -#: templates/js/translated/purchase_order.js:2205 -#: templates/js/translated/return_order.js:780 -#: templates/js/translated/sales_order.js:1056 -#: templates/js/translated/sales_order.js:1987 -msgid "Link" -msgstr "" - -#: InvenTree/models.py:568 build/models.py:315 part/models.py:920 -#: stock/models.py:819 -msgid "Link to external URL" -msgstr "Link zu einer externen URL" - -#: InvenTree/models.py:574 templates/js/translated/attachment.js:120 -#: templates/js/translated/attachment.js:341 -msgid "Comment" -msgstr "Kommentar" - -#: InvenTree/models.py:575 -msgid "File comment" -msgstr "Datei-Kommentar" - -#: InvenTree/models.py:583 InvenTree/models.py:584 common/models.py:2494 -#: common/models.py:2495 common/models.py:2719 common/models.py:2720 -#: common/models.py:2965 common/models.py:2966 part/models.py:3185 -#: part/models.py:3272 part/models.py:3365 part/models.py:3393 -#: plugin/models.py:250 plugin/models.py:251 -#: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3036 users/models.py:111 -msgid "User" -msgstr "Benutzer" - -#: InvenTree/models.py:588 -msgid "upload date" -msgstr "Hochladedatum" - -#: InvenTree/models.py:610 -msgid "Filename must not be empty" -msgstr "Dateiname darf nicht leer sein" - -#: InvenTree/models.py:621 -msgid "Invalid attachment directory" -msgstr "Ungültiges Verzeichnis für Anhang" - -#: InvenTree/models.py:651 -#, python-brace-format -msgid "Filename contains illegal character '{c}'" -msgstr "Dateiname enthält ungültiges Zeichen '{c}'" - -#: InvenTree/models.py:654 -msgid "Filename missing extension" -msgstr "Dateiendung fehlt" - -#: InvenTree/models.py:663 -msgid "Attachment with this filename already exists" -msgstr "Anhang mit diesem Dateinamen bereits vorhanden" - -#: InvenTree/models.py:670 -msgid "Error renaming file" -msgstr "Fehler beim Umbenennen" - -#: InvenTree/models.py:846 +#: InvenTree/models.py:719 msgid "Duplicate names cannot exist under the same parent" msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren" -#: InvenTree/models.py:863 +#: InvenTree/models.py:736 msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:893 common/models.py:2706 common/models.py:3104 -#: common/serializers.py:370 company/models.py:613 label/models.py:120 -#: machine/models.py:24 part/models.py:855 part/models.py:3616 -#: plugin/models.py:41 report/models.py:176 stock/models.py:76 +#: InvenTree/models.py:766 common/models.py:2623 common/models.py:3036 +#: common/serializers.py:408 company/models.py:580 machine/models.py:24 +#: part/models.py:891 part/models.py:3639 plugin/models.py:51 +#: report/models.py:150 stock/models.py:73 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 -#: templates/InvenTree/settings/plugin.html:81 +#: 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 @@ -497,192 +417,188 @@ msgstr "Ungültige Auswahl" #: 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:1186 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1610 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1187 +#: templates/js/translated/part.js:1475 templates/js/translated/part.js:1611 #: templates/js/translated/part.js:2749 templates/js/translated/stock.js:2716 msgid "Name" -msgstr "" +msgstr "Name" -#: InvenTree/models.py:899 build/models.py:188 -#: build/templates/build/detail.html:24 common/models.py:136 -#: company/models.py:522 company/models.py:838 +#: InvenTree/models.py:772 build/models.py:220 +#: build/templates/build/detail.html:24 common/models.py:138 +#: company/models.py:509 company/models.py:808 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:127 -#: order/models.py:277 order/models.py:1316 part/admin.py:303 part/admin.py:414 -#: part/models.py:878 part/models.py:3631 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 order/models.py:289 +#: order/models.py:1329 part/admin.py:305 part/admin.py:408 part/models.py:914 +#: part/models.py:3654 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:189 -#: report/models.py:655 report/models.py:729 -#: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:55 stock/models.py:82 stock/templates/stock/location.html:125 +#: 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:79 stock/templates/stock/location.html:125 #: 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/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2137 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2139 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:1238 -#: templates/js/translated/part.js:1483 templates/js/translated/part.js:1621 -#: templates/js/translated/part.js:1958 templates/js/translated/part.js:2355 -#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2896 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1239 +#: templates/js/translated/part.js:1484 templates/js/translated/part.js:1622 +#: templates/js/translated/part.js:1959 templates/js/translated/part.js:2355 +#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2897 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1707 -#: templates/js/translated/purchase_order.js:1850 -#: templates/js/translated/purchase_order.js:2023 -#: templates/js/translated/return_order.js:314 -#: templates/js/translated/sales_order.js:802 -#: templates/js/translated/sales_order.js:1812 -#: templates/js/translated/stock.js:1512 templates/js/translated/stock.js:2057 +#: templates/js/translated/purchase_order.js:1706 +#: templates/js/translated/purchase_order.js:1849 +#: templates/js/translated/purchase_order.js:2022 +#: 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:1515 templates/js/translated/stock.js:2058 #: templates/js/translated/stock.js:2748 templates/js/translated/stock.js:2831 msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:900 stock/models.py:83 +#: InvenTree/models.py:773 stock/models.py:80 msgid "Description (optional)" msgstr "Beschreibung (optional)" -#: InvenTree/models.py:909 +#: InvenTree/models.py:782 msgid "parent" msgstr "Eltern" -#: InvenTree/models.py:915 templates/js/translated/part.js:2794 +#: InvenTree/models.py:788 templates/js/translated/part.js:2794 #: templates/js/translated/stock.js:2757 msgid "Path" msgstr "Pfad" -#: InvenTree/models.py:1021 +#: InvenTree/models.py:918 msgid "Markdown notes (optional)" msgstr "Markdown Notizen (optional)" -#: InvenTree/models.py:1050 +#: InvenTree/models.py:947 msgid "Barcode Data" msgstr "Barcode-Daten" -#: InvenTree/models.py:1051 +#: InvenTree/models.py:948 msgid "Third party barcode data" msgstr "Drittanbieter-Barcode-Daten" -#: InvenTree/models.py:1057 +#: InvenTree/models.py:954 msgid "Barcode Hash" msgstr "Barcode-Hash" -#: InvenTree/models.py:1058 +#: InvenTree/models.py:955 msgid "Unique hash of barcode data" msgstr "Eindeutiger Hash der Barcode-Daten" -#: InvenTree/models.py:1111 +#: InvenTree/models.py:1008 msgid "Existing barcode found" msgstr "Bestehender Barcode gefunden" -#: InvenTree/models.py:1154 +#: InvenTree/models.py:1051 msgid "Server Error" msgstr "Serverfehler" -#: InvenTree/models.py:1155 +#: InvenTree/models.py:1052 msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/serializers.py:62 part/models.py:4169 +#: InvenTree/serializers.py:63 part/models.py:4192 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" -#: InvenTree/serializers.py:99 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:2993 +#: InvenTree/serializers.py:100 company/models.py:186 +#: company/templates/company/company_base.html:112 part/models.py:3001 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Währung" -#: InvenTree/serializers.py:102 +#: InvenTree/serializers.py:103 msgid "Select currency from available options" msgstr "Währung aus verfügbaren Optionen auswählen" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:442 msgid "You do not have permission to change this user role." msgstr "Sie haben keine Berechtigung, diese Benutzerrolle zu ändern." -#: InvenTree/serializers.py:453 +#: InvenTree/serializers.py:454 msgid "Only superusers can create new users" msgstr "Nur Superuser können neue Benutzer erstellen" -#: InvenTree/serializers.py:472 +#: InvenTree/serializers.py:473 msgid "Your account has been created." msgstr "Ihr Konto wurde erstellt." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:475 msgid "Please use the password reset function to login" msgstr "Bitte benutzen Sie die Passwort-zurücksetzen-Funktion, um sich anzumelden" -#: InvenTree/serializers.py:481 +#: InvenTree/serializers.py:482 msgid "Welcome to InvenTree" msgstr "Willkommen bei InvenTree" -#: InvenTree/serializers.py:542 -msgid "Filename" -msgstr "Dateiname" - -#: InvenTree/serializers.py:576 +#: InvenTree/serializers.py:540 msgid "Invalid value" msgstr "Ungültiger Wert" -#: InvenTree/serializers.py:596 +#: InvenTree/serializers.py:560 msgid "Data File" msgstr "Datendatei" -#: InvenTree/serializers.py:597 +#: InvenTree/serializers.py:561 msgid "Select data file for upload" msgstr "Neue Datei zum Hochladen auswählen" -#: InvenTree/serializers.py:614 +#: InvenTree/serializers.py:578 msgid "Unsupported file type" msgstr "Nicht unterstütztes Dateiformat" -#: InvenTree/serializers.py:620 +#: InvenTree/serializers.py:584 msgid "File is too large" msgstr "Datei ist zu groß" -#: InvenTree/serializers.py:641 +#: InvenTree/serializers.py:605 msgid "No columns found in file" msgstr "Keine Spalten in der Datei gefunden" -#: InvenTree/serializers.py:644 +#: InvenTree/serializers.py:608 msgid "No data rows found in file" msgstr "Keine Datensätze in der Datei gefunden" -#: InvenTree/serializers.py:757 +#: InvenTree/serializers.py:721 msgid "No data rows provided" msgstr "Keine Zeilen ausgewählt" -#: InvenTree/serializers.py:760 +#: InvenTree/serializers.py:724 msgid "No data columns supplied" msgstr "Keine Spalten angegeben" -#: InvenTree/serializers.py:827 +#: InvenTree/serializers.py:791 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Erforderliche Spalte '{name}' fehlt" -#: InvenTree/serializers.py:836 +#: InvenTree/serializers.py:800 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Doppelte Spalte: '{col}'" -#: InvenTree/serializers.py:859 +#: InvenTree/serializers.py:840 msgid "Remote Image" msgstr "Grafiken aus externen Quellen" -#: InvenTree/serializers.py:860 +#: InvenTree/serializers.py:841 msgid "URL of remote image file" msgstr "URL der Remote-Bilddatei" -#: InvenTree/serializers.py:878 +#: InvenTree/serializers.py:859 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:1161 +#: InvenTree/status.py:66 part/serializers.py:1166 msgid "Background worker check failed" msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen" @@ -694,223 +610,27 @@ msgstr "E-Mail-Backend nicht konfiguriert" msgid "InvenTree system health checks failed" msgstr "InvenTree Status-Überprüfung fehlgeschlagen" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 -#: InvenTree/status_codes.py:182 generic/states/tests.py:17 -#: templates/js/translated/table_filters.js:598 -msgid "Pending" -msgstr "Ausstehend" - -#: InvenTree/status_codes.py:13 generic/states/tests.py:18 -msgid "Placed" -msgstr "Platziert" - -#: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:169 generic/states/tests.py:19 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:161 -msgid "Complete" -msgstr "Fertig" - -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 -msgid "Cancelled" -msgstr "Storniert" - -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 -#: InvenTree/status_codes.py:67 -msgid "Lost" -msgstr "Verloren" - -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 -#: InvenTree/status_codes.py:73 -msgid "Returned" -msgstr "Zurückgegeben" - -#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 -msgid "In Progress" -msgstr "In Bearbeitung" - -#: InvenTree/status_codes.py:43 order/models.py:1564 -#: templates/js/translated/sales_order.js:1523 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1957 -msgid "Shipped" -msgstr "Versendet" - -#: InvenTree/status_codes.py:62 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:63 -msgid "Attention needed" -msgstr "erfordert Eingriff" - -#: InvenTree/status_codes.py:64 -msgid "Damaged" -msgstr "Beschädigt" - -#: InvenTree/status_codes.py:65 -msgid "Destroyed" -msgstr "Zerstört" - -#: InvenTree/status_codes.py:66 -msgid "Rejected" -msgstr "Zurückgewiesen" - -#: InvenTree/status_codes.py:70 -msgid "Quarantined" -msgstr "In Quarantäne" - -#: InvenTree/status_codes.py:91 -msgid "Legacy stock tracking entry" -msgstr "Alter Bestand-Verfolgungs-Eintrag" - -#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544 -msgid "Stock item created" -msgstr "Lagerartikel erstellt" - -#: InvenTree/status_codes.py:96 -msgid "Edited stock item" -msgstr "Lagerartikel bearbeitet" - -#: InvenTree/status_codes.py:97 -msgid "Assigned serial number" -msgstr "Seriennummer hinzugefügt" - -#: InvenTree/status_codes.py:100 -msgid "Stock counted" -msgstr "Bestand gezählt" - -#: InvenTree/status_codes.py:101 -msgid "Stock manually added" -msgstr "Bestand manuell hinzugefügt" - -#: InvenTree/status_codes.py:102 -msgid "Stock manually removed" -msgstr "Bestand manuell entfernt" - -#: InvenTree/status_codes.py:105 -msgid "Location changed" -msgstr "Standort geändert" - -#: InvenTree/status_codes.py:106 -msgid "Stock updated" -msgstr "Lagerbestand aktualisiert" - -#: InvenTree/status_codes.py:109 -msgid "Installed into assembly" -msgstr "In Baugruppe installiert" - -#: InvenTree/status_codes.py:110 -msgid "Removed from assembly" -msgstr "Aus Baugruppe entfernt" - -#: InvenTree/status_codes.py:112 -msgid "Installed component item" -msgstr "Komponente installiert" - -#: InvenTree/status_codes.py:113 -msgid "Removed component item" -msgstr "Komponente entfernt" - -#: InvenTree/status_codes.py:116 -msgid "Split from parent item" -msgstr "Vom übergeordneten Element geteilt" - -#: InvenTree/status_codes.py:117 -msgid "Split child item" -msgstr "Unterobjekt geteilt" - -#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1855 -msgid "Merged stock items" -msgstr "Lagerartikel zusammengeführt" - -#: InvenTree/status_codes.py:123 -msgid "Converted to variant" -msgstr "In Variante umgewandelt" - -#: InvenTree/status_codes.py:126 -msgid "Build order output created" -msgstr "Endprodukt erstellt" - -#: InvenTree/status_codes.py:127 -msgid "Build order output completed" -msgstr "Endprodukt fertiggestellt" - -#: InvenTree/status_codes.py:128 -msgid "Build order output rejected" -msgstr "Endprodukt abgelehnt" - -#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1761 -msgid "Consumed by build order" -msgstr "Durch Bauauftrag verbraucht" - -#: InvenTree/status_codes.py:132 -msgid "Shipped against Sales Order" -msgstr "Versandt gegen Verkaufsauftrag" - -#: InvenTree/status_codes.py:135 -msgid "Received against Purchase Order" -msgstr "Gegen Bestellung empfangen" - -#: InvenTree/status_codes.py:138 -msgid "Returned against Return Order" -msgstr "Zurückgeschickt gegen Rücksendeauftrag" - -#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375 -msgid "Sent to customer" -msgstr "Zum Kunden geschickt" - -#: InvenTree/status_codes.py:142 -msgid "Returned from customer" -msgstr "Rücksendung vom Kunden" - -#: InvenTree/status_codes.py:149 -msgid "Production" -msgstr "in Arbeit" - -#: InvenTree/status_codes.py:185 -msgid "Return" -msgstr "Zurück" - -#: InvenTree/status_codes.py:188 -msgid "Repair" -msgstr "Reparatur" - -#: InvenTree/status_codes.py:191 -msgid "Replace" -msgstr "Ersetzen" - -#: InvenTree/status_codes.py:194 -msgid "Refund" -msgstr "Rückerstattung" - -#: InvenTree/status_codes.py:197 -msgid "Reject" -msgstr "Ablehnen" - -#: InvenTree/templatetags/inventree_extras.py:183 +#: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Unbekannte Datenbank" -#: InvenTree/validators.py:31 InvenTree/validators.py:33 +#: InvenTree/validators.py:32 InvenTree/validators.py:34 msgid "Invalid physical unit" msgstr "Ungültige physikalische Einheit" -#: InvenTree/validators.py:39 +#: InvenTree/validators.py:40 msgid "Not a valid currency code" msgstr "Kein gültiger Währungscode" -#: InvenTree/validators.py:121 InvenTree/validators.py:137 +#: InvenTree/validators.py:118 InvenTree/validators.py:134 msgid "Overage value must not be negative" msgstr "Überschuss-Wert darf nicht negativ sein" -#: InvenTree/validators.py:139 +#: InvenTree/validators.py:136 msgid "Overage must not exceed 100%" msgstr "Überschuss darf 100% nicht überschreiten" -#: InvenTree/validators.py:145 +#: InvenTree/validators.py:142 msgid "Invalid value for overage" msgstr "Ungültiger Wert für Ausschuss" @@ -938,62 +658,62 @@ msgstr "Systeminformationen" msgid "About InvenTree" msgstr "Über InvenTree" -#: build/api.py:238 +#: build/api.py:255 msgid "Build must be cancelled before it can be deleted" msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" -#: build/api.py:282 part/models.py:4047 templates/js/translated/bom.js:997 -#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2521 +#: build/api.py:299 part/models.py:4070 templates/js/translated/bom.js:997 +#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Verbrauchsmaterial" -#: build/api.py:283 part/models.py:4041 part/templates/part/upload_bom.html:58 +#: build/api.py:300 part/models.py:4064 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 -#: templates/js/translated/build.js:2530 +#: templates/js/translated/build.js:2529 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 msgid "Optional" -msgstr "" +msgstr "Optional" -#: build/api.py:284 templates/js/translated/table_filters.js:408 +#: build/api.py:301 templates/js/translated/table_filters.js:408 #: templates/js/translated/table_filters.js:579 msgid "Tracked" msgstr "Nachverfolgt" -#: build/api.py:286 part/admin.py:144 templates/js/translated/build.js:1741 -#: templates/js/translated/build.js:2630 -#: templates/js/translated/sales_order.js:1929 +#: build/api.py:303 part/admin.py:144 templates/js/translated/build.js:1744 +#: templates/js/translated/build.js:2629 +#: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Zugeordnet" -#: build/api.py:294 company/models.py:902 company/serializers.py:383 +#: build/api.py:311 company/models.py:872 company/serializers.py:359 #: 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:2562 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2561 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:228 -#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 -#: templates/js/translated/part.js:699 +#: templates/js/translated/model_renderers.js:234 +#: templates/js/translated/part.js:693 templates/js/translated/part.js:695 +#: templates/js/translated/part.js:700 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" msgstr "Verfügbar" -#: build/models.py:74 build/templates/build/build_base.html:9 +#: build/models.py:85 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 -#: report/templates/report/inventree_build_order_base.html:105 -#: templates/email/build_order_completed.html:16 +#: report/templates/report/inventree_build_order_report.html:105 +#: stock/serializers.py:82 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 #: templates/js/translated/build.js:972 templates/js/translated/stock.js:2892 msgid "Build Order" msgstr "Bauauftrag" -#: build/models.py:75 build/templates/build/build_base.html:13 +#: build/models.py:86 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 @@ -1004,708 +724,756 @@ msgstr "Bauauftrag" msgid "Build Orders" msgstr "Bauaufträge" -#: build/models.py:116 +#: build/models.py:133 msgid "Invalid choice for parent build" msgstr "Ungültige Wahl für übergeordneten Bauauftrag" -#: build/models.py:127 order/models.py:239 +#: build/models.py:144 order/models.py:240 msgid "Responsible user or group must be specified" -msgstr "" +msgstr "Verantwortlicher Benutzer oder Gruppe muss angegeben werden" -#: build/models.py:133 +#: build/models.py:150 msgid "Build order part cannot be changed" msgstr "Teil in Bauauftrag kann nicht geändert werden" -#: build/models.py:179 +#: build/models.py:211 msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:180 order/models.py:442 order/models.py:898 -#: order/models.py:1276 order/models.py:1996 part/admin.py:417 -#: part/models.py:4062 part/templates/part/upload_bom.html:54 +#: build/models.py:212 order/models.py:463 order/models.py:926 +#: order/models.py:1289 order/models.py:2020 part/admin.py:411 +#: part/models.py:4085 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 -#: report/templates/report/inventree_po_report_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:26 -#: report/templates/report/inventree_so_report_base.html:28 +#: 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:2513 templates/js/translated/order.js:291 +#: templates/js/translated/build.js:2512 templates/js/translated/order.js:291 #: templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2066 -#: templates/js/translated/return_order.js:729 -#: templates/js/translated/sales_order.js:1818 +#: templates/js/translated/purchase_order.js:2065 +#: templates/js/translated/return_order.js:728 +#: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referenz" -#: build/models.py:191 +#: build/models.py:223 msgid "Brief description of the build (optional)" msgstr "Kurze Beschreibung des Baus (optional)" -#: build/models.py:199 build/templates/build/build_base.html:183 +#: build/models.py:231 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Eltern-Bauauftrag" -#: build/models.py:200 +#: build/models.py:232 msgid "BuildOrder to which this build is allocated" msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" -#: build/models.py:205 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1056 order/api.py:817 -#: order/models.py:1401 order/models.py:1544 order/models.py:1545 -#: part/api.py:1547 part/api.py:1841 part/models.py:390 part/models.py:3004 -#: part/models.py:3148 part/models.py:3292 part/models.py:3315 -#: part/models.py:3336 part/models.py:3358 part/models.py:3468 -#: part/models.py:3764 part/models.py:3920 part/models.py:4013 -#: part/models.py:4374 part/serializers.py:1107 part/serializers.py:1713 +#: build/models.py:237 build/templates/build/build_base.html:97 +#: build/templates/build/detail.html:29 company/models.py:1026 order/api.py:805 +#: order/models.py:1414 order/models.py:1559 order/models.py:1560 +#: part/api.py:1478 part/api.py:1772 part/models.py:395 part/models.py:3012 +#: part/models.py:3156 part/models.py:3303 part/models.py:3324 +#: part/models.py:3346 part/models.py:3477 part/models.py:3787 +#: part/models.py:3943 part/models.py:4036 part/models.py:4395 +#: part/serializers.py:1112 part/serializers.py:1718 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_base.html:109 -#: report/templates/report/inventree_po_report_base.html:27 -#: report/templates/report/inventree_return_order_report_base.html:24 -#: report/templates/report/inventree_slr_report.html:102 -#: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:267 stock/serializers.py:689 -#: templates/InvenTree/search.html:82 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:109 stock/serializers.py:157 stock/serializers.py:423 +#: stock/serializers.py:820 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:546 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1309 templates/js/translated/build.js:1740 -#: templates/js/translated/build.js:2160 templates/js/translated/build.js:2333 +#: templates/js/translated/build.js:1312 templates/js/translated/build.js:1743 +#: templates/js/translated/build.js:2162 templates/js/translated/build.js:2335 #: 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:1943 templates/js/translated/part.js:2015 +#: templates/js/translated/part.js:1944 templates/js/translated/part.js:2016 #: templates/js/translated/part.js:2324 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1304 -#: templates/js/translated/purchase_order.js:1849 -#: templates/js/translated/purchase_order.js:2008 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:710 +#: templates/js/translated/purchase_order.js:1848 +#: templates/js/translated/purchase_order.js:2007 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:709 #: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1197 -#: templates/js/translated/sales_order.js:1598 -#: templates/js/translated/sales_order.js:1796 +#: 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:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1996 +#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1997 #: templates/js/translated/stock.js:2857 templates/js/translated/stock.js:3090 #: templates/js/translated/stock.js:3236 msgid "Part" msgstr "Teil" -#: build/models.py:213 +#: build/models.py:245 msgid "Select part to build" msgstr "Teil für den Bauauftrag wählen" -#: build/models.py:218 +#: build/models.py:250 msgid "Sales Order Reference" msgstr "Auftrag Referenz" -#: build/models.py:222 +#: build/models.py:254 msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist" -#: build/models.py:227 build/serializers.py:964 -#: templates/js/translated/build.js:1728 -#: templates/js/translated/sales_order.js:1185 +#: build/models.py:259 build/serializers.py:999 +#: templates/js/translated/build.js:1731 +#: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Quell-Lagerort" -#: build/models.py:231 +#: build/models.py:263 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:236 +#: build/models.py:268 msgid "Destination Location" msgstr "Ziel-Lagerort" -#: build/models.py:240 +#: build/models.py:272 msgid "Select location where the completed items will be stored" msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen" -#: build/models.py:244 +#: build/models.py:276 msgid "Build Quantity" msgstr "Bau-Anzahl" -#: build/models.py:247 +#: build/models.py:279 msgid "Number of stock items to build" msgstr "Anzahl der zu bauenden Lagerartikel" -#: build/models.py:251 +#: build/models.py:283 msgid "Completed items" msgstr "Fertiggestellte Teile" -#: build/models.py:253 +#: build/models.py:285 msgid "Number of stock items which have been completed" msgstr "Anzahl der fertigen Lagerartikel" -#: build/models.py:257 +#: build/models.py:289 msgid "Build Status" msgstr "Bauauftrags-Status" -#: build/models.py:261 +#: build/models.py:293 msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:270 build/serializers.py:280 order/serializers.py:577 -#: stock/models.py:823 stock/serializers.py:1333 +#: build/models.py:302 build/serializers.py:286 order/serializers.py:580 +#: stock/models.py:838 stock/serializers.py:74 stock/serializers.py:1449 #: templates/js/translated/purchase_order.js:1129 msgid "Batch Code" msgstr "Losnummer" -#: build/models.py:274 build/serializers.py:281 +#: build/models.py:306 build/serializers.py:287 msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:277 order/models.py:304 part/models.py:1079 -#: part/templates/part/part_base.html:310 -#: templates/js/translated/return_order.js:339 -#: templates/js/translated/sales_order.js:827 +#: build/models.py:309 order/models.py:316 order/serializers.py:119 +#: part/models.py:1115 part/templates/part/part_base.html:310 +#: templates/js/translated/return_order.js:338 +#: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Erstelldatum" -#: build/models.py:281 +#: build/models.py:313 msgid "Target completion date" msgstr "geplantes Fertigstellungsdatum" -#: build/models.py:282 +#: build/models.py:314 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." -#: build/models.py:285 order/models.py:500 order/models.py:2041 -#: templates/js/translated/build.js:2245 +#: build/models.py:317 order/models.py:521 order/models.py:2065 +#: templates/js/translated/build.js:2247 msgid "Completion Date" msgstr "Fertigstellungsdatum" -#: build/models.py:291 +#: build/models.py:323 msgid "completed by" msgstr "Fertiggestellt von" -#: build/models.py:299 templates/js/translated/build.js:2205 +#: build/models.py:331 templates/js/translated/build.js:2207 msgid "Issued by" msgstr "Aufgegeben von" -#: build/models.py:300 +#: build/models.py:332 msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" -#: build/models.py:308 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:145 -#: order/models.py:322 order/templates/order/order_base.html:217 +#: build/models.py:340 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:147 +#: 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:228 part/models.py:1096 +#: order/templates/order/sales_order_base.html:232 part/models.py:1132 #: part/templates/part/part_base.html:390 -#: report/templates/report/inventree_build_order_base.html:158 +#: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2217 -#: templates/js/translated/purchase_order.js:1764 -#: templates/js/translated/return_order.js:359 +#: templates/js/translated/build.js:2219 +#: templates/js/translated/purchase_order.js:1763 +#: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Verantwortlicher Benutzer" -#: build/models.py:309 +#: build/models.py:341 msgid "User or group responsible for this build order" msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag" -#: build/models.py:314 build/templates/build/detail.html:108 +#: build/models.py:346 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:180 -#: part/templates/part/part_base.html:383 stock/models.py:819 +#: order/templates/order/sales_order_base.html:184 +#: part/templates/part/part_base.html:383 stock/models.py:834 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externer Link" -#: build/models.py:319 +#: build/models.py:347 common/models.py:3178 part/models.py:956 +#: stock/models.py:834 +msgid "Link to external URL" +msgstr "Link zu einer externen URL" + +#: build/models.py:351 msgid "Build Priority" msgstr "Bauauftrags-Priorität" -#: build/models.py:322 +#: build/models.py:354 msgid "Priority of this build order" msgstr "Priorität dieses Bauauftrags" -#: build/models.py:329 common/models.py:129 order/admin.py:18 -#: order/models.py:286 templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2142 -#: templates/js/translated/purchase_order.js:1711 -#: templates/js/translated/return_order.js:318 -#: templates/js/translated/sales_order.js:806 +#: build/models.py:361 common/models.py:131 order/admin.py:18 +#: order/models.py:298 templates/InvenTree/settings/settings_staff_js.html:146 +#: templates/js/translated/build.js:2144 +#: templates/js/translated/purchase_order.js:1710 +#: templates/js/translated/return_order.js:317 +#: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Projektcode" -#: build/models.py:330 +#: build/models.py:362 msgid "Project code for this build order" msgstr "Projektcode für diesen Auftrag" -#: build/models.py:581 +#: build/models.py:595 build/models.py:660 +msgid "Failed to offload task to complete build allocations" +msgstr "Fehler beim Abladen der Aufgabe, um die Build-Allokation abzuschließen" + +#: build/models.py:617 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Bauauftrag {build} wurde fertiggestellt" -#: build/models.py:587 +#: build/models.py:623 msgid "A build order has been completed" msgstr "Ein Bauauftrag wurde fertiggestellt" -#: build/models.py:805 build/models.py:880 +#: build/models.py:849 build/models.py:934 msgid "No build output specified" msgstr "kein Endprodukt angegeben" -#: build/models.py:808 +#: build/models.py:852 msgid "Build output is already completed" msgstr "Endprodukt bereits hergstellt" -#: build/models.py:811 +#: build/models.py:855 msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:884 build/serializers.py:223 build/serializers.py:262 -#: build/serializers.py:831 order/models.py:538 order/serializers.py:429 -#: order/serializers.py:572 part/serializers.py:1471 part/serializers.py:1871 -#: stock/models.py:662 stock/models.py:1474 stock/serializers.py:472 +#: build/models.py:938 build/serializers.py:219 build/serializers.py:268 +#: build/serializers.py:866 order/models.py:559 order/serializers.py:432 +#: order/serializers.py:575 part/serializers.py:1476 part/serializers.py:1876 +#: stock/models.py:677 stock/models.py:1495 stock/serializers.py:603 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: build/models.py:889 build/serializers.py:228 +#: build/models.py:943 build/serializers.py:224 msgid "Quantity cannot be greater than the output quantity" msgstr "Menge kann nicht größer als die Ausgangsmenge sein" -#: build/models.py:946 build/serializers.py:533 +#: build/models.py:1003 build/serializers.py:547 #, 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:1308 +#: build/models.py:1344 +msgid "Build Order Line Item" +msgstr "" + +#: build/models.py:1369 msgid "Build object" msgstr "Objekt bauen" -#: build/models.py:1322 build/models.py:1578 build/serializers.py:210 -#: build/serializers.py:247 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2516 -#: order/models.py:1259 order/models.py:1916 order/serializers.py:1335 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:416 -#: part/forms.py:48 part/models.py:3162 part/models.py:4035 +#: build/models.py:1383 build/models.py:1639 build/serializers.py:206 +#: build/serializers.py:253 build/templates/build/build_base.html:102 +#: build/templates/build/detail.html:34 common/models.py:2509 +#: order/models.py:1272 order/models.py:1931 order/serializers.py:1327 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 +#: part/forms.py:48 part/models.py:3170 part/models.py:4058 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 -#: report/templates/report/inventree_build_order_base.html:113 -#: report/templates/report/inventree_po_report_base.html:29 -#: report/templates/report/inventree_slr_report.html:104 -#: report/templates/report/inventree_so_report_base.html:29 -#: report/templates/report/inventree_test_report_base.html:90 -#: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:160 stock/serializers.py:463 +#: report/templates/report/inventree_build_order_report.html:113 +#: report/templates/report/inventree_purchase_order_report.html:29 +#: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_stock_location_report.html:104 +#: report/templates/report/inventree_test_report.html:90 +#: report/templates/report/inventree_test_report.html:170 stock/admin.py:159 +#: stock/serializers.py:125 stock/serializers.py:165 stock/serializers.py:594 #: 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:548 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:521 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1366 -#: templates/js/translated/build.js:1743 templates/js/translated/build.js:2355 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1369 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2357 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:961 -#: templates/js/translated/part.js:1811 templates/js/translated/part.js:3341 +#: templates/js/translated/model_renderers.js:236 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1812 templates/js/translated/part.js:3342 #: 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:1853 -#: templates/js/translated/purchase_order.js:2072 +#: templates/js/translated/purchase_order.js:1852 +#: templates/js/translated/purchase_order.js:2071 #: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1199 -#: templates/js/translated/sales_order.js:1518 -#: templates/js/translated/sales_order.js:1608 -#: templates/js/translated/sales_order.js:1698 -#: templates/js/translated/sales_order.js:1824 +#: 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:564 templates/js/translated/stock.js:702 #: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3021 #: templates/js/translated/stock.js:3104 msgid "Quantity" msgstr "Anzahl" -#: build/models.py:1323 +#: build/models.py:1384 msgid "Required quantity for build order" msgstr "Erforderliche Menge für Auftrag" -#: build/models.py:1403 +#: build/models.py:1464 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:1412 +#: build/models.py:1473 #, 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:1422 order/models.py:1867 +#: build/models.py:1483 order/models.py:1882 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1428 order/models.py:1870 +#: build/models.py:1489 order/models.py:1885 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1434 +#: build/models.py:1495 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1493 +#: build/models.py:1554 msgid "Selected stock item does not match BOM line" msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" -#: build/models.py:1565 build/serializers.py:811 order/serializers.py:1179 -#: order/serializers.py:1200 stock/serializers.py:566 stock/serializers.py:1052 -#: stock/serializers.py:1164 stock/templates/stock/item_base.html:10 +#: build/models.py:1626 build/serializers.py:846 order/serializers.py:1171 +#: order/serializers.py:1192 stock/models.py:358 stock/serializers.py:91 +#: stock/serializers.py:697 stock/serializers.py:1168 stock/serializers.py:1280 +#: 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:1742 +#: templates/js/translated/build.js:1745 #: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1198 -#: templates/js/translated/sales_order.js:1499 -#: templates/js/translated/sales_order.js:1504 -#: templates/js/translated/sales_order.js:1605 -#: templates/js/translated/sales_order.js:1692 +#: 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:677 templates/js/translated/stock.js:843 #: templates/js/translated/stock.js:2977 msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1566 +#: build/models.py:1627 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1579 +#: build/models.py:1640 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1587 +#: build/models.py:1648 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1588 +#: build/models.py:1649 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" -#: build/serializers.py:160 build/serializers.py:840 -#: templates/js/translated/build.js:1319 +#: build/serializers.py:156 build/serializers.py:875 +#: templates/js/translated/build.js:1322 msgid "Build Output" msgstr "Endprodukt" -#: build/serializers.py:172 +#: build/serializers.py:168 msgid "Build output does not match the parent build" msgstr "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein" -#: build/serializers.py:176 +#: build/serializers.py:172 msgid "Output part does not match BuildOrder part" msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags" -#: build/serializers.py:180 +#: build/serializers.py:176 msgid "This build output has already been completed" msgstr "Dieses Endprodukt wurde bereits fertiggestellt" -#: build/serializers.py:191 +#: build/serializers.py:187 msgid "This build output is not fully allocated" msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen" -#: build/serializers.py:211 build/serializers.py:248 +#: build/serializers.py:207 build/serializers.py:254 msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" -#: build/serializers.py:269 +#: build/serializers.py:275 msgid "Integer quantity required for trackable parts" msgstr "Ganzzahl für verfolgbare Teile erforderlich" -#: build/serializers.py:272 +#: build/serializers.py:278 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:287 order/serializers.py:585 order/serializers.py:1339 -#: stock/serializers.py:483 templates/js/translated/purchase_order.js:1153 +#: build/serializers.py:293 order/serializers.py:588 order/serializers.py:1331 +#: stock/serializers.py:614 templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Seriennummer" -#: build/serializers.py:288 +#: build/serializers.py:294 msgid "Enter serial numbers for build outputs" msgstr "Seriennummer für dieses Endprodukt eingeben" -#: build/serializers.py:301 -msgid "Auto Allocate Serial Numbers" -msgstr "Seriennummern automatisch zuweisen" - -#: build/serializers.py:302 -msgid "Automatically allocate required items with matching serial numbers" -msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" - -#: build/serializers.py:337 stock/api.py:995 -msgid "The following serial numbers already exist or are invalid" -msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig" - -#: build/serializers.py:388 build/serializers.py:450 build/serializers.py:539 -msgid "A list of build outputs must be provided" -msgstr "Eine Liste von Endprodukten muss angegeben werden" - -#: build/serializers.py:426 build/serializers.py:498 order/serializers.py:561 -#: order/serializers.py:669 order/serializers.py:1675 part/serializers.py:1127 -#: stock/serializers.py:494 stock/serializers.py:654 stock/serializers.py:750 -#: stock/serializers.py:1196 stock/serializers.py:1452 -#: stock/templates/stock/item_base.html:394 +#: build/serializers.py:299 build/serializers.py:440 build/serializers.py:512 +#: order/serializers.py:564 order/serializers.py:672 order/serializers.py:1656 +#: part/serializers.py:1132 stock/serializers.py:100 stock/serializers.py:625 +#: stock/serializers.py:785 stock/serializers.py:881 stock/serializers.py:1312 +#: stock/serializers.py:1568 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 -#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:999 -#: templates/js/translated/build.js:2370 +#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:1001 +#: templates/js/translated/build.js:2372 #: templates/js/translated/purchase_order.js:1178 #: templates/js/translated/purchase_order.js:1268 -#: templates/js/translated/sales_order.js:1511 -#: templates/js/translated/sales_order.js:1619 -#: templates/js/translated/sales_order.js:1627 -#: templates/js/translated/sales_order.js:1706 +#: 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:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2201 #: templates/js/translated/stock.js:2871 msgid "Location" msgstr "Lagerort" -#: build/serializers.py:427 +#: build/serializers.py:300 +msgid "Stock location for build output" +msgstr "Lagerort für Bauprodukt" + +#: build/serializers.py:314 +msgid "Auto Allocate Serial Numbers" +msgstr "Seriennummern automatisch zuweisen" + +#: build/serializers.py:315 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" + +#: build/serializers.py:330 +msgid "Serial numbers must be provided for trackable parts" +msgstr "Seriennummern müssen für nachverfolgbare Teile angegeben werden" + +#: build/serializers.py:355 stock/api.py:1025 +msgid "The following serial numbers already exist or are invalid" +msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig" + +#: build/serializers.py:402 build/serializers.py:464 build/serializers.py:553 +msgid "A list of build outputs must be provided" +msgstr "Eine Liste von Endprodukten muss angegeben werden" + +#: build/serializers.py:441 msgid "Stock location for scrapped outputs" msgstr "Lagerort für ausgemusterte Ausgänge" -#: build/serializers.py:433 +#: build/serializers.py:447 msgid "Discard Allocations" msgstr "Zuteilungen verwerfen" -#: build/serializers.py:434 +#: build/serializers.py:448 msgid "Discard any stock allocations for scrapped outputs" msgstr "Bestandszuteilung für ausgemusterte Endprodukte verwerfen" -#: build/serializers.py:439 +#: build/serializers.py:453 msgid "Reason for scrapping build output(s)" msgstr "Grund für das Verwerfen des Bauauftrages/der Bauaufträge" -#: build/serializers.py:499 +#: build/serializers.py:513 msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" -#: build/serializers.py:505 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:922 -#: order/models.py:2020 order/serializers.py:593 stock/admin.py:165 -#: stock/serializers.py:801 stock/serializers.py:1340 +#: build/serializers.py:519 build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:62 order/models.py:950 +#: order/models.py:2044 order/serializers.py:596 stock/admin.py:164 +#: stock/serializers.py:932 stock/serializers.py:1456 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2189 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2191 #: templates/js/translated/purchase_order.js:1308 -#: templates/js/translated/purchase_order.js:1723 -#: templates/js/translated/return_order.js:331 -#: templates/js/translated/sales_order.js:819 -#: templates/js/translated/stock.js:2175 templates/js/translated/stock.js:2995 +#: templates/js/translated/purchase_order.js:1722 +#: templates/js/translated/return_order.js:330 +#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/stock.js:2176 templates/js/translated/stock.js:2995 #: templates/js/translated/stock.js:3120 msgid "Status" -msgstr "" +msgstr "Status" -#: build/serializers.py:511 +#: build/serializers.py:525 msgid "Accept Incomplete Allocation" msgstr "Unvollständige Zuweisung akzeptieren" -#: build/serializers.py:512 +#: build/serializers.py:526 msgid "Complete outputs if stock has not been fully allocated" msgstr "Endprodukte fertigstellen, auch wenn Bestand nicht fertig zugewiesen wurde" -#: build/serializers.py:592 -msgid "Remove Allocated Stock" -msgstr "Zugewiesenen Bestand entfernen" +#: build/serializers.py:611 +msgid "Consume Allocated Stock" +msgstr "Zugewiesen Bestand verbrauchen" -#: build/serializers.py:593 -msgid "Subtract any stock which has already been allocated to this build" -msgstr "Abzug aller Lagerbestände, die diesem Build bereits zugewiesen wurden" +#: build/serializers.py:612 +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:599 +#: build/serializers.py:618 msgid "Remove Incomplete Outputs" msgstr "Unfertige Endprodukte entfernen" -#: build/serializers.py:600 +#: build/serializers.py:619 msgid "Delete any build outputs which have not been completed" msgstr "Lösche alle noch nicht abgeschlossenen Endprodukte" -#: build/serializers.py:627 +#: build/serializers.py:646 msgid "Not permitted" msgstr "Nicht erlaubt" -#: build/serializers.py:628 +#: build/serializers.py:647 msgid "Accept as consumed by this build order" msgstr "Als von diesem Bauauftrag verbraucht setzen" -#: build/serializers.py:629 +#: build/serializers.py:648 msgid "Deallocate before completing this build order" msgstr "Bestandszuordnung vor dem Abschluss dieses Bauauftrags freigeben" -#: build/serializers.py:651 +#: build/serializers.py:678 msgid "Overallocated Stock" msgstr "Überbelegter Lagerbestand" -#: build/serializers.py:653 +#: build/serializers.py:680 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:663 +#: build/serializers.py:690 msgid "Some stock items have been overallocated" msgstr "Der Bestand einiger Lagerartikel ist überbelegt" -#: build/serializers.py:668 +#: build/serializers.py:695 msgid "Accept Unallocated" msgstr "Nicht zugewiesene akzeptieren" -#: build/serializers.py:669 +#: build/serializers.py:696 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:679 templates/js/translated/build.js:315 +#: build/serializers.py:706 templates/js/translated/build.js:315 msgid "Required stock has not been fully allocated" msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen" -#: build/serializers.py:684 order/serializers.py:297 order/serializers.py:1242 +#: build/serializers.py:711 order/serializers.py:300 order/serializers.py:1234 msgid "Accept Incomplete" msgstr "Unvollständig Zuweisung akzeptieren" -#: build/serializers.py:685 +#: build/serializers.py:712 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:695 templates/js/translated/build.js:319 +#: build/serializers.py:722 templates/js/translated/build.js:319 msgid "Required build quantity has not been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/serializers.py:704 templates/js/translated/build.js:303 +#: build/serializers.py:731 templates/js/translated/build.js:303 msgid "Build order has incomplete outputs" msgstr "Bauauftrag hat unvollständige Aufbauten" -#: build/serializers.py:734 +#: build/serializers.py:769 msgid "Build Line" msgstr "Bauauftragsposition" -#: build/serializers.py:744 +#: build/serializers.py:779 msgid "Build output" msgstr "Endprodukt" -#: build/serializers.py:752 +#: build/serializers.py:787 msgid "Build output must point to the same build" msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen" -#: build/serializers.py:788 +#: build/serializers.py:823 msgid "Build Line Item" msgstr "Bauauftragspositionsartikel" -#: build/serializers.py:802 +#: build/serializers.py:837 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:817 stock/serializers.py:1065 +#: build/serializers.py:852 stock/serializers.py:1181 msgid "Item must be in stock" msgstr "Teil muss auf Lager sein" -#: build/serializers.py:865 order/serializers.py:1233 +#: build/serializers.py:900 order/serializers.py:1225 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Verfügbare Menge ({q}) überschritten" -#: build/serializers.py:871 +#: build/serializers.py:906 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:878 +#: build/serializers.py:913 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:902 order/serializers.py:1485 +#: build/serializers.py:937 order/serializers.py:1477 msgid "Allocation items must be provided" msgstr "Zuweisungen müssen angegeben werden" -#: build/serializers.py:965 +#: build/serializers.py:1000 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:973 +#: build/serializers.py:1008 msgid "Exclude Location" msgstr "Lagerort ausschließen" -#: build/serializers.py:974 +#: build/serializers.py:1009 msgid "Exclude stock items from this selected location" msgstr "Lagerartikel vom ausgewählten Ort ausschließen" -#: build/serializers.py:979 +#: build/serializers.py:1014 msgid "Interchangeable Stock" msgstr "Wechselbares Lagerbestand" -#: build/serializers.py:980 +#: build/serializers.py:1015 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Lagerartikel an mehreren Standorten können austauschbar verwendet werden" -#: build/serializers.py:985 +#: build/serializers.py:1020 msgid "Substitute Stock" msgstr "Ersatzbestand" -#: build/serializers.py:986 +#: build/serializers.py:1021 msgid "Allow allocation of substitute parts" msgstr "Zuordnung von Ersatzteilen erlauben" -#: build/serializers.py:991 +#: build/serializers.py:1026 msgid "Optional Items" msgstr "Optionale Positionen" -#: build/serializers.py:992 +#: build/serializers.py:1027 msgid "Allocate optional BOM items to build order" msgstr "Optionale Stücklisten-Positionen dem Bauauftrag hinzufügen" -#: build/serializers.py:1097 part/models.py:3930 part/models.py:4366 -#: stock/api.py:758 +#: build/serializers.py:1049 +msgid "Failed to start auto-allocation task" +msgstr "Fehler beim Starten der automatischen Zuweisung" + +#: build/serializers.py:1139 part/models.py:3953 part/models.py:4387 +#: stock/api.py:788 msgid "BOM Item" msgstr "Stücklisten-Position" -#: build/serializers.py:1106 templates/js/translated/index.js:130 +#: build/serializers.py:1148 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Zugewiesener Bestand" -#: build/serializers.py:1111 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:817 part/serializers.py:1489 +#: build/serializers.py:1153 part/admin.py:132 part/bom.py:173 +#: part/serializers.py:820 part/serializers.py:1494 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2614 templates/js/translated/part.js:709 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/build.js:2613 templates/js/translated/part.js:710 +#: templates/js/translated/part.js:2149 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Bestellt" -#: build/serializers.py:1116 part/serializers.py:1491 -#: templates/js/translated/build.js:2618 +#: build/serializers.py:1158 part/serializers.py:1496 +#: templates/js/translated/build.js:2617 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "In Produktion" -#: build/serializers.py:1121 part/bom.py:172 part/serializers.py:1514 +#: build/serializers.py:1163 part/bom.py:172 part/serializers.py:1519 #: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1893 +#: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Verfügbarer Bestand" -#: build/tasks.py:172 +#: 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 +msgid "Pending" +msgstr "Ausstehend" + +#: build/status_codes.py:12 +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 +msgid "Cancelled" +msgstr "Storniert" + +#: build/status_codes.py:14 generic/states/tests.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 +msgid "Complete" +msgstr "Fertig" + +#: build/tasks.py:184 msgid "Stock required for build order" msgstr "Bestand für Bauauftrag erforderlich" -#: build/tasks.py:189 +#: build/tasks.py:201 msgid "Overdue Build Order" msgstr "Überfälliger Bauauftrag" -#: build/tasks.py:194 +#: build/tasks.py:206 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "Bauauftrag {bo} ist jetzt überfällig" @@ -1822,18 +1590,18 @@ 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/detail.html:138 order/models.py:297 -#: order/models.py:1294 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:309 +#: order/models.py:1307 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:192 -#: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2237 templates/js/translated/part.js:1830 -#: templates/js/translated/purchase_order.js:1740 -#: templates/js/translated/purchase_order.js:2148 -#: templates/js/translated/return_order.js:347 -#: templates/js/translated/return_order.js:751 -#: templates/js/translated/sales_order.js:835 -#: templates/js/translated/sales_order.js:1867 +#: order/templates/order/sales_order_base.html:196 +#: report/templates/report/inventree_build_order_report.html:125 +#: templates/js/translated/build.js:2239 templates/js/translated/part.js:1831 +#: templates/js/translated/purchase_order.js:1739 +#: templates/js/translated/purchase_order.js:2147 +#: templates/js/translated/return_order.js:346 +#: templates/js/translated/return_order.js:750 +#: templates/js/translated/sales_order.js:871 +#: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Zieldatum" @@ -1846,7 +1614,7 @@ msgstr "Bauauftrag war fällig am %(target)s" #: 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:122 +#: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 #: templates/js/translated/table_filters.js:524 #: templates/js/translated/table_filters.js:626 @@ -1860,42 +1628,42 @@ msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1507 order/models.py:1536 -#: order/models.py:1650 order/models.py:1804 +#: build/templates/build/detail.html:101 order/api.py:1463 order/models.py:845 +#: order/models.py:1551 order/models.py:1665 order/models.py:1819 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 -#: report/templates/report/inventree_build_order_base.html:135 -#: report/templates/report/inventree_so_report_base.html:14 +#: report/templates/report/inventree_build_order_report.html:135 +#: report/templates/report/inventree_sales_order_report.html:14 #: stock/templates/stock/item_base.html:369 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:769 -#: templates/js/translated/sales_order.js:992 +#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:1028 #: templates/js/translated/stock.js:2924 msgid "Sales Order" msgstr "Auftrag" #: build/templates/build/build_base.html:197 #: build/templates/build/detail.html:115 -#: report/templates/report/inventree_build_order_base.html:152 +#: 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:2154 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2156 msgid "Priority" msgstr "Priorität" -#: build/templates/build/build_base.html:273 +#: build/templates/build/build_base.html:269 msgid "Delete Build Order" msgstr "Bauauftrag löschen" -#: build/templates/build/build_base.html:283 +#: build/templates/build/build_base.html:279 msgid "Build Order QR Code" msgstr "Bauftrags-QR-Code" -#: build/templates/build/build_base.html:295 +#: build/templates/build/build_base.html:291 msgid "Link Barcode to Build Order" msgstr "Barcode mit Bauauftrag verknüpfen" @@ -1911,8 +1679,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:1430 -#: templates/js/translated/purchase_order.js:2190 +#: build/templates/build/detail.html:49 order/models.py:1443 +#: templates/js/translated/purchase_order.js:2189 msgid "Destination" msgstr "Ziel-Lager" @@ -1924,12 +1692,12 @@ msgstr "Ziel-Lagerort nicht angegeben" msgid "Allocated Parts" msgstr "Zugewiesene Teile" -#: build/templates/build/detail.html:80 stock/admin.py:163 +#: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1377 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/build.js:1380 +#: templates/js/translated/model_renderers.js:241 #: templates/js/translated/purchase_order.js:1274 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:2190 #: templates/js/translated/stock.js:3127 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 @@ -1939,8 +1707,8 @@ 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:186 -#: templates/js/translated/build.js:2197 +#: order/templates/order/sales_order_base.html:190 +#: templates/js/translated/build.js:2199 msgid "Created" msgstr "Erstellt" @@ -1949,7 +1717,7 @@ msgid "No target date set" msgstr "Kein Ziel-Datum gesetzt" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:202 +#: order/templates/order/sales_order_base.html:206 #: templates/js/translated/table_filters.js:689 msgid "Completed" msgstr "Fertig" @@ -2043,11 +1811,11 @@ msgstr "Anhänge" msgid "Build Notes" msgstr "Bauauftrags-Notizen" -#: build/templates/build/detail.html:434 +#: build/templates/build/detail.html:426 msgid "Allocation Complete" msgstr "Zuordnung abgeschlossen" -#: build/templates/build/detail.html:435 +#: build/templates/build/detail.html:427 msgid "All lines have been fully allocated" msgstr "Alle Zeilen wurden vollständig zugewiesen" @@ -2063,6 +1831,34 @@ msgstr "Bauauftragdetails" msgid "Incomplete Outputs" msgstr "Unfertige Endprodukte" +#: common/api.py:689 +msgid "Is Link" +msgstr "" + +#: common/api.py:697 +msgid "Is File" +msgstr "" + +#: common/api.py:739 +msgid "User does not have permission to delete this attachment" +msgstr "" + +#: common/currency.py:130 +msgid "Invalid currency code" +msgstr "" + +#: common/currency.py:132 +msgid "Duplicate currency code" +msgstr "" + +#: common/currency.py:137 +msgid "No valid currency codes provided" +msgstr "" + +#: common/currency.py:154 +msgid "No plugin" +msgstr "Kein Plugin" + #: common/files.py:63 #, python-brace-format msgid "Unsupported file format: {fmt}" @@ -2101,27 +1897,27 @@ msgstr "{name.title()} Datei" msgid "Select {name} file to upload" msgstr "{name} Datei zum Hochladen auswählen" -#: common/models.py:71 +#: common/models.py:73 msgid "Updated" msgstr "Aktualisiert" -#: common/models.py:72 +#: common/models.py:74 msgid "Timestamp of last update" msgstr "Zeitstempel der letzten Aktualisierung" -#: common/models.py:105 +#: common/models.py:107 msgid "Site URL is locked by configuration" msgstr "Seiten-URL ist durch die Konfiguration gesperrt" -#: common/models.py:130 +#: common/models.py:132 msgid "Unique project code" msgstr "Eindeutiger Projektcode" -#: common/models.py:137 +#: common/models.py:139 msgid "Project description" msgstr "Projektbeschreibung" -#: common/models.py:146 +#: common/models.py:148 msgid "User or group responsible for this project" msgstr "Benutzer oder Gruppe verantwortlich für dieses Projekt" @@ -2153,1430 +1949,1460 @@ msgstr "Schlüsseltext muss eindeutig sein" msgid "No group" msgstr "Keine Gruppe" -#: common/models.py:1157 -msgid "An empty domain is not allowed." -msgstr "Eine leere Domain ist nicht erlaubt." - -#: common/models.py:1159 -#, python-brace-format -msgid "Invalid domain name: {domain}" -msgstr "Ungültiger Domainname: {domain}" - -#: common/models.py:1171 -msgid "No plugin" -msgstr "Kein Plugin" - -#: common/models.py:1259 +#: common/models.py:1213 msgid "Restart required" msgstr "Neustart erforderlich" -#: common/models.py:1261 +#: common/models.py:1215 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:1268 +#: common/models.py:1222 msgid "Pending migrations" msgstr "Ausstehende Migrationen" -#: common/models.py:1269 +#: common/models.py:1223 msgid "Number of pending database migrations" msgstr "Anzahl der ausstehenden Datenbankmigrationen" -#: common/models.py:1274 +#: common/models.py:1228 msgid "Server Instance Name" msgstr "Name der Serverinstanz" -#: common/models.py:1276 +#: common/models.py:1230 msgid "String descriptor for the server instance" msgstr "Kurze Beschreibung der Instanz" -#: common/models.py:1280 +#: common/models.py:1234 msgid "Use instance name" msgstr "Name der Instanz verwenden" -#: common/models.py:1281 +#: common/models.py:1235 msgid "Use the instance name in the title-bar" msgstr "Den Namen der Instanz in der Titelleiste verwenden" -#: common/models.py:1286 +#: common/models.py:1240 msgid "Restrict showing `about`" msgstr "Anzeige von `Über` einschränken" -#: common/models.py:1287 +#: common/models.py:1241 msgid "Show the `about` modal only to superusers" msgstr "Zeige das `Über` Fenster nur Administratoren" -#: common/models.py:1292 company/models.py:108 company/models.py:109 +#: common/models.py:1246 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Firmenname" -#: common/models.py:1293 +#: common/models.py:1247 msgid "Internal company name" msgstr "interner Firmenname" -#: common/models.py:1297 +#: common/models.py:1251 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:1298 +#: common/models.py:1252 msgid "Base URL for server instance" msgstr "Basis-URL für dieses Instanz" -#: common/models.py:1304 +#: common/models.py:1258 msgid "Default Currency" msgstr "Standardwährung" -#: common/models.py:1305 +#: common/models.py:1259 msgid "Select base currency for pricing calculations" msgstr "Wählen Sie die Basiswährung für Preisberechnungen aus" -#: common/models.py:1311 +#: common/models.py:1265 +msgid "Supported Currencies" +msgstr "" + +#: common/models.py:1266 +msgid "List of supported currency codes" +msgstr "" + +#: common/models.py:1272 msgid "Currency Update Interval" msgstr "Währungsaktualisierungsintervall" -#: common/models.py:1313 +#: common/models.py:1274 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:1316 common/models.py:1372 common/models.py:1385 -#: common/models.py:1393 common/models.py:1402 common/models.py:1411 -#: common/models.py:1613 common/models.py:1635 common/models.py:1750 -#: common/models.py:2053 +#: common/models.py:1277 common/models.py:1333 common/models.py:1346 +#: common/models.py:1354 common/models.py:1363 common/models.py:1372 +#: common/models.py:1590 common/models.py:1612 common/models.py:1727 +#: common/models.py:2046 msgid "days" msgstr "Tage" -#: common/models.py:1320 +#: common/models.py:1281 msgid "Currency Update Plugin" msgstr "Währungs-Aktualisierungs-Plugin" -#: common/models.py:1321 +#: common/models.py:1282 msgid "Currency update plugin to use" msgstr "Zu verwendendes Währungs-Aktualisierungs-Plugin" -#: common/models.py:1326 +#: common/models.py:1287 msgid "Download from URL" msgstr "Von URL herunterladen" -#: common/models.py:1328 +#: common/models.py:1289 msgid "Allow download of remote images and files from external URL" msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" -#: common/models.py:1334 +#: common/models.py:1295 msgid "Download Size Limit" msgstr "Download-Größenlimit" -#: common/models.py:1335 +#: common/models.py:1296 msgid "Maximum allowable download size for remote image" msgstr "Maximal zulässige Größe für heruntergeladene Bilder" -#: common/models.py:1341 +#: common/models.py:1302 msgid "User-agent used to download from URL" msgstr "Benutzer-Agent zum Herunterladen von Daten" -#: common/models.py:1343 +#: common/models.py:1304 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:1348 +#: common/models.py:1309 msgid "Strict URL Validation" msgstr "Strenge URL-Prüfung" -#: common/models.py:1349 +#: common/models.py:1310 msgid "Require schema specification when validating URLs" msgstr "Erfordert die Schema-Spezifikation bei der Validierung von URLs" -#: common/models.py:1354 +#: common/models.py:1315 msgid "Require confirm" msgstr "Bestätigung verpflichtend" -#: common/models.py:1355 +#: common/models.py:1316 msgid "Require explicit user confirmation for certain action." msgstr "Eine ausdrückliche Benutzerbestätigung für bestimmte Aktionen erfordern." -#: common/models.py:1360 +#: common/models.py:1321 msgid "Tree Depth" msgstr "Baumtiefe" -#: common/models.py:1362 +#: common/models.py:1323 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:1368 +#: common/models.py:1329 msgid "Update Check Interval" msgstr "Prüfungsintervall aktualisieren" -#: common/models.py:1369 +#: common/models.py:1330 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:1375 +#: common/models.py:1336 msgid "Automatic Backup" msgstr "Automatische Sicherung" -#: common/models.py:1376 +#: common/models.py:1337 msgid "Enable automatic backup of database and media files" msgstr "Automatische Sicherung der Datenbank- und Mediendateien aktivieren" -#: common/models.py:1381 +#: common/models.py:1342 msgid "Auto Backup Interval" msgstr "Intervall für automatische Sicherung" -#: common/models.py:1382 +#: common/models.py:1343 msgid "Specify number of days between automated backup events" msgstr "Anzahl der Tage zwischen automatischen Sicherungen" -#: common/models.py:1388 +#: common/models.py:1349 msgid "Task Deletion Interval" msgstr "Aufgabenlöschinterval" -#: common/models.py:1390 +#: common/models.py:1351 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:1397 +#: common/models.py:1358 msgid "Error Log Deletion Interval" msgstr "Löschintervall für Fehlerprotokolle" -#: common/models.py:1399 +#: common/models.py:1360 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:1406 +#: common/models.py:1367 msgid "Notification Deletion Interval" msgstr "Löschintervall für Benachrichtigungen" -#: common/models.py:1408 +#: common/models.py:1369 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:1415 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1376 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:1416 +#: common/models.py:1377 msgid "Enable barcode scanner support in the web interface" msgstr "Barcode-Scanner Unterstützung im Webinterface aktivieren" -#: common/models.py:1421 +#: common/models.py:1382 msgid "Barcode Input Delay" msgstr "Barcode-Eingabeverzögerung" -#: common/models.py:1422 +#: common/models.py:1383 msgid "Barcode input processing delay time" msgstr "Verzögerungszeit bei Barcode-Eingabe" -#: common/models.py:1428 +#: common/models.py:1389 msgid "Barcode Webcam Support" msgstr "Barcode Webcam-Unterstützung" -#: common/models.py:1429 +#: common/models.py:1390 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode-Scannen über Webcam im Browser erlauben" -#: common/models.py:1434 +#: common/models.py:1395 msgid "Part Revisions" msgstr "Artikelrevisionen" -#: common/models.py:1435 +#: common/models.py:1396 msgid "Enable revision field for Part" msgstr "Revisions-Feld für Artikel aktivieren" -#: common/models.py:1440 -msgid "IPN Regex" +#: common/models.py:1401 +msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1441 +#: common/models.py:1402 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1407 +msgid "IPN Regex" +msgstr "IPN Regex" + +#: common/models.py:1408 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:1444 +#: common/models.py:1411 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1445 +#: common/models.py:1412 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1450 +#: common/models.py:1417 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:1451 +#: common/models.py:1418 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:1456 +#: common/models.py:1423 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:1457 +#: common/models.py:1424 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:1462 +#: common/models.py:1429 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:1463 +#: common/models.py:1430 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:1468 +#: common/models.py:1435 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:1469 +#: common/models.py:1436 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:1474 +#: common/models.py:1441 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:1475 +#: common/models.py:1442 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:1480 part/admin.py:108 part/models.py:3772 -#: report/models.py:182 stock/serializers.py:99 +#: common/models.py:1447 part/admin.py:108 part/models.py:3795 +#: report/models.py:294 report/models.py:361 report/serializers.py:90 +#: report/serializers.py:131 stock/serializers.py:227 #: templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:767 msgid "Template" msgstr "Vorlage" -#: common/models.py:1481 +#: common/models.py:1448 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:1486 part/admin.py:91 part/admin.py:431 part/models.py:1016 +#: common/models.py:1453 part/admin.py:91 part/admin.py:425 part/models.py:1052 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:721 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:1487 +#: common/models.py:1454 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:1492 part/admin.py:95 part/models.py:1022 +#: common/models.py:1459 part/admin.py:95 part/models.py:1058 #: templates/js/translated/table_filters.js:729 msgid "Component" msgstr "Komponente" -#: common/models.py:1493 +#: common/models.py:1460 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:1498 part/admin.py:100 part/models.py:1034 +#: common/models.py:1465 part/admin.py:100 part/models.py:1070 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:1499 +#: common/models.py:1466 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:1504 part/admin.py:104 part/models.py:1040 +#: common/models.py:1471 part/admin.py:104 part/models.py:1076 #: templates/js/translated/table_filters.js:755 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:1505 +#: common/models.py:1472 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:1510 part/admin.py:113 part/models.py:1028 +#: common/models.py:1477 part/admin.py:113 part/models.py:1064 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:771 msgid "Trackable" msgstr "Nachverfolgbar" -#: common/models.py:1511 +#: common/models.py:1478 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:1516 part/admin.py:117 part/models.py:1050 +#: common/models.py:1483 part/admin.py:117 part/models.py:1086 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:775 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:1517 +#: common/models.py:1484 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:1522 +#: common/models.py:1489 msgid "Show Import in Views" msgstr "Import in Ansichten anzeigen" -#: common/models.py:1523 +#: common/models.py:1490 msgid "Display the import wizard in some part views" msgstr "Importassistent in einigen Teil-Ansichten anzeigen" -#: common/models.py:1528 +#: common/models.py:1495 msgid "Show related parts" msgstr "Verwandte Teile anzeigen" -#: common/models.py:1529 +#: common/models.py:1496 msgid "Display related parts for a part" msgstr "Verwandte Teile eines Teils anzeigen" -#: common/models.py:1534 +#: common/models.py:1501 msgid "Initial Stock Data" msgstr "Initialer Lagerbestand" -#: common/models.py:1535 +#: common/models.py:1502 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:1540 templates/js/translated/part.js:107 +#: common/models.py:1507 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Initiale Lieferantendaten" -#: common/models.py:1542 +#: common/models.py:1509 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:1548 +#: common/models.py:1515 msgid "Part Name Display Format" msgstr "Anzeigeformat für Teilenamen" -#: common/models.py:1549 +#: common/models.py:1516 msgid "Format to display the part name" msgstr "Format für den Namen eines Teiles" -#: common/models.py:1555 +#: common/models.py:1522 msgid "Part Category Default Icon" msgstr "Standardsymbol der Teilkategorie" -#: common/models.py:1556 +#: common/models.py:1523 msgid "Part category default icon (empty means no icon)" msgstr "Standardsymbol der Teilkategorie (leer bedeutet kein Symbol)" -#: common/models.py:1560 +#: common/models.py:1527 msgid "Enforce Parameter Units" msgstr "Parameter Einheiten durchsetzen" -#: common/models.py:1562 +#: common/models.py:1529 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:1568 +#: common/models.py:1535 msgid "Minimum Pricing Decimal Places" msgstr "Dezimalstellen für minimalen Preis" -#: common/models.py:1570 +#: common/models.py:1537 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Mindestanzahl der Dezimalstellen bei der Darstellung der Preisdaten" -#: common/models.py:1576 +#: common/models.py:1548 msgid "Maximum Pricing Decimal Places" msgstr "Dezimalstellen für maximalen Preis" -#: common/models.py:1578 +#: common/models.py:1550 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:1584 +#: common/models.py:1561 msgid "Use Supplier Pricing" msgstr "Zulieferer-Preise verwenden" -#: common/models.py:1586 +#: common/models.py:1563 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Lieferanten-Staffelpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1592 +#: common/models.py:1569 msgid "Purchase History Override" msgstr "Kaufverlauf überschreiben" -#: common/models.py:1594 +#: common/models.py:1571 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historische Bestellungspreise überschreiben die Lieferanten-Staffelpreise" -#: common/models.py:1600 +#: common/models.py:1577 msgid "Use Stock Item Pricing" msgstr "Lagerartikel-Preis verwenden" -#: common/models.py:1602 +#: common/models.py:1579 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Preise aus manuell eingegebenen Lagerdaten für Preisberechnungen verwenden" -#: common/models.py:1608 +#: common/models.py:1585 msgid "Stock Item Pricing Age" msgstr "Lagerartikelpreis Alter" -#: common/models.py:1610 +#: common/models.py:1587 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:1617 +#: common/models.py:1594 msgid "Use Variant Pricing" msgstr "Variantenpreise verwenden" -#: common/models.py:1618 +#: common/models.py:1595 msgid "Include variant pricing in overall pricing calculations" msgstr "Variantenpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1623 +#: common/models.py:1600 msgid "Active Variants Only" msgstr "Nur aktive Varianten" -#: common/models.py:1625 +#: common/models.py:1602 msgid "Only use active variant parts for calculating variant pricing" msgstr "Nur aktive Variantenteile zur Berechnung der Variantenbepreisung verwenden" -#: common/models.py:1631 +#: common/models.py:1608 msgid "Pricing Rebuild Interval" msgstr "Intervall für Neuberechnung von Preisen" -#: common/models.py:1633 +#: common/models.py:1610 msgid "Number of days before part pricing is automatically updated" msgstr "Anzahl der Tage bis die Teile-Preisberechnungen automatisch aktualisiert werden" -#: common/models.py:1640 +#: common/models.py:1617 msgid "Internal Prices" msgstr "Interne Preise" -#: common/models.py:1641 +#: common/models.py:1618 msgid "Enable internal prices for parts" msgstr "Interne Preise für Teile aktivieren" -#: common/models.py:1646 +#: common/models.py:1623 msgid "Internal Price Override" msgstr "Interne Preisüberschreibung" -#: common/models.py:1648 +#: common/models.py:1625 msgid "If available, internal prices override price range calculations" msgstr "Falls verfügbar, überschreiben interne Preise Preispannenberechnungen" -#: common/models.py:1654 +#: common/models.py:1631 msgid "Enable label printing" msgstr "Labeldruck aktivieren" -#: common/models.py:1655 +#: common/models.py:1632 msgid "Enable label printing from the web interface" msgstr "Labeldruck über die Website aktivieren" -#: common/models.py:1660 +#: common/models.py:1637 msgid "Label Image DPI" msgstr "Label Bild DPI" -#: common/models.py:1662 +#: common/models.py:1639 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:1668 +#: common/models.py:1645 msgid "Enable Reports" msgstr "Berichte aktivieren" -#: common/models.py:1669 +#: common/models.py:1646 msgid "Enable generation of reports" msgstr "Berichterstellung aktivieren" -#: common/models.py:1674 templates/stats.html:25 +#: common/models.py:1651 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:1675 +#: common/models.py:1652 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:1680 +#: common/models.py:1657 msgid "Log Report Errors" msgstr "Berichtsfehler protokollieren" -#: common/models.py:1681 +#: common/models.py:1658 msgid "Log errors which occur when generating reports" msgstr "Fehler, die beim Erstellen von Berichten auftreten, protokollieren" -#: common/models.py:1686 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:203 +#: common/models.py:1663 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:302 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:1687 +#: common/models.py:1664 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:1692 +#: common/models.py:1669 msgid "Enable Test Reports" msgstr "Testberichte aktivieren" -#: common/models.py:1693 +#: common/models.py:1670 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:1698 +#: common/models.py:1675 msgid "Attach Test Reports" msgstr "Testberichte anhängen" -#: common/models.py:1700 +#: common/models.py:1677 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:1706 +#: common/models.py:1683 msgid "Globally Unique Serials" msgstr "Global einzigartige Seriennummern" -#: common/models.py:1707 +#: common/models.py:1684 msgid "Serial numbers for stock items must be globally unique" msgstr "Seriennummern für Lagerartikel müssen global eindeutig sein" -#: common/models.py:1712 +#: common/models.py:1689 msgid "Autofill Serial Numbers" msgstr "Seriennummern automatisch ausfüllen" -#: common/models.py:1713 +#: common/models.py:1690 msgid "Autofill serial numbers in forms" msgstr "Seriennummern in Formularen automatisch ausfüllen" -#: common/models.py:1718 +#: common/models.py:1695 msgid "Delete Depleted Stock" msgstr "Erschöpften Lagerartikel löschen" -#: common/models.py:1720 +#: common/models.py:1697 msgid "Determines default behavior when a stock item is depleted" -msgstr "" +msgstr "Legt das Standardverhalten fest, wenn ein Lagerartikel aufgebraucht ist" -#: common/models.py:1726 +#: common/models.py:1703 msgid "Batch Code Template" msgstr "Losnummer Vorlage" -#: common/models.py:1728 +#: common/models.py:1705 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:1733 +#: common/models.py:1710 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:1734 +#: common/models.py:1711 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:1739 +#: common/models.py:1716 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:1740 +#: common/models.py:1717 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:1745 +#: common/models.py:1722 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:1747 +#: common/models.py:1724 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:1754 +#: common/models.py:1731 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:1755 +#: common/models.py:1732 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:1760 +#: common/models.py:1737 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:1761 +#: common/models.py:1738 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:1766 +#: common/models.py:1743 msgid "Stock Location Default Icon" msgstr "Standardsymbol für Lagerort" -#: common/models.py:1767 +#: common/models.py:1744 msgid "Stock location default icon (empty means no icon)" msgstr "Standardsymbol für Lagerstandort (leer bedeutet kein Symbol)" -#: common/models.py:1771 +#: common/models.py:1748 msgid "Show Installed Stock Items" msgstr "Zeige installierte Lagerartikel" -#: common/models.py:1772 +#: common/models.py:1749 msgid "Display installed stock items in stock tables" msgstr "Anzeige der installierten Lagerartikel in Bestandstabellen" -#: common/models.py:1777 +#: common/models.py:1754 msgid "Check BOM when installing items" msgstr "Prüfe BOM bei der Installation von Elementen" -#: common/models.py:1779 +#: common/models.py:1756 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:1785 +#: common/models.py:1762 +msgid "Allow Out of Stock Transfer" +msgstr "Erlaube Verschieben von \"nicht auf Lager\" Bestand" + +#: common/models.py:1764 +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:1770 msgid "Build Order Reference Pattern" msgstr "Bauauftragsreferenz-Muster" -#: common/models.py:1787 +#: common/models.py:1772 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:1793 common/models.py:1821 common/models.py:1843 -#: common/models.py:1871 +#: common/models.py:1778 common/models.py:1806 common/models.py:1828 +#: common/models.py:1864 msgid "Require Responsible Owner" -msgstr "" +msgstr "Verantwortlicher Besitzer erforderlich" -#: common/models.py:1794 common/models.py:1822 common/models.py:1844 -#: common/models.py:1872 +#: common/models.py:1779 common/models.py:1807 common/models.py:1829 +#: common/models.py:1865 msgid "A responsible owner must be assigned to each order" -msgstr "" +msgstr "Jeder Bestellung muss ein verantwortlicher Besitzer zugewiesen werden" -#: common/models.py:1799 +#: common/models.py:1784 msgid "Block Until Tests Pass" msgstr "Blockieren bis Test bestanden" -#: common/models.py:1801 +#: common/models.py:1786 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:1807 +#: common/models.py:1792 msgid "Enable Return Orders" msgstr "Rücksendungen aktivieren" -#: common/models.py:1808 +#: common/models.py:1793 msgid "Enable return order functionality in the user interface" msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche" -#: common/models.py:1813 +#: common/models.py:1798 msgid "Return Order Reference Pattern" msgstr "Referenz Muster für Rücksendungen" -#: common/models.py:1815 +#: common/models.py:1800 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:1827 +#: common/models.py:1812 msgid "Edit Completed Return Orders" msgstr "Abgeschlossene Rücksendungen bearbeiten" -#: common/models.py:1829 +#: common/models.py:1814 msgid "Allow editing of return orders after they have been completed" msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben" -#: common/models.py:1835 +#: common/models.py:1820 msgid "Sales Order Reference Pattern" msgstr "Auftragsreferenz-Muster" -#: common/models.py:1837 +#: common/models.py:1822 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:1849 +#: common/models.py:1834 msgid "Sales Order Default Shipment" msgstr "Auftrag Standardsendung" -#: common/models.py:1850 +#: common/models.py:1835 msgid "Enable creation of default shipment with sales orders" msgstr "Erstelle eine Standardsendung für Aufträge" -#: common/models.py:1855 +#: common/models.py:1840 msgid "Edit Completed Sales Orders" msgstr "Abgeschlossene Aufträge bearbeiten" -#: common/models.py:1857 +#: common/models.py:1842 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:1863 +#: common/models.py:1848 +msgid "Mark Shipped Orders as Complete" +msgstr "" + +#: common/models.py:1850 +msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" +msgstr "" + +#: common/models.py:1856 msgid "Purchase Order Reference Pattern" msgstr "Bestellungsreferenz-Muster" -#: common/models.py:1865 +#: common/models.py:1858 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:1877 +#: common/models.py:1870 msgid "Edit Completed Purchase Orders" msgstr "Abgeschlossene Einkaufsaufträge bearbeiten" -#: common/models.py:1879 +#: common/models.py:1872 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:1885 +#: common/models.py:1878 msgid "Auto Complete Purchase Orders" msgstr "Bestellungen automatisch abschließen" -#: common/models.py:1887 +#: common/models.py:1880 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:1894 +#: common/models.py:1887 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/models.py:1895 +#: common/models.py:1888 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/models.py:1900 +#: common/models.py:1893 msgid "Enable registration" msgstr "Registrierung erlauben" -#: common/models.py:1901 +#: common/models.py:1894 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1906 +#: common/models.py:1899 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/models.py:1907 +#: common/models.py:1900 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/models.py:1912 +#: common/models.py:1905 msgid "Enable SSO registration" msgstr "SSO Selbstregistrierung aktivieren" -#: common/models.py:1914 +#: common/models.py:1907 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:1920 +#: common/models.py:1913 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/models.py:1921 +#: common/models.py:1914 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/models.py:1926 +#: common/models.py:1919 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/models.py:1928 +#: common/models.py:1921 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/models.py:1934 +#: common/models.py:1927 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/models.py:1935 +#: common/models.py:1928 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:1940 +#: common/models.py:1933 msgid "Password twice" msgstr "Passwort zweimal" -#: common/models.py:1941 +#: common/models.py:1934 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/models.py:1946 +#: common/models.py:1939 msgid "Allowed domains" msgstr "Erlaubte Domains" -#: common/models.py:1948 +#: common/models.py:1941 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)" -#: common/models.py:1954 +#: common/models.py:1947 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/models.py:1955 +#: common/models.py:1948 msgid "Group to which new users are assigned on registration" msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden" -#: common/models.py:1960 +#: common/models.py:1953 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/models.py:1961 +#: common/models.py:1954 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/models.py:1966 +#: common/models.py:1959 msgid "Check plugins on startup" msgstr "Plugins beim Start prüfen" -#: common/models.py:1968 +#: common/models.py:1961 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:1976 +#: common/models.py:1969 msgid "Check for plugin updates" msgstr "Nach Plugin-Aktualisierungen suchen" -#: common/models.py:1977 +#: common/models.py:1970 msgid "Enable periodic checks for updates to installed plugins" msgstr "Periodische Überprüfungen auf Updates für installierte Plugins aktivieren" -#: common/models.py:1983 +#: common/models.py:1976 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/models.py:1984 +#: common/models.py:1977 msgid "Enable plugins to add URL routes" msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/models.py:1990 +#: common/models.py:1983 msgid "Enable navigation integration" msgstr "Navigations-Integration aktivieren" -#: common/models.py:1991 +#: common/models.py:1984 msgid "Enable plugins to integrate into navigation" msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/models.py:1997 +#: common/models.py:1990 msgid "Enable app integration" msgstr "App-Integration aktivieren" -#: common/models.py:1998 +#: common/models.py:1991 msgid "Enable plugins to add apps" msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/models.py:2004 +#: common/models.py:1997 msgid "Enable schedule integration" msgstr "Terminplan-Integration aktivieren" -#: common/models.py:2005 +#: common/models.py:1998 msgid "Enable plugins to run scheduled tasks" msgstr "Geplante Aufgaben aktivieren" -#: common/models.py:2011 +#: common/models.py:2004 msgid "Enable event integration" msgstr "Ereignis-Integration aktivieren" -#: common/models.py:2012 +#: common/models.py:2005 msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" -#: common/models.py:2018 +#: common/models.py:2011 msgid "Enable project codes" msgstr "Projektcodes aktivieren" -#: common/models.py:2019 +#: common/models.py:2012 msgid "Enable project codes for tracking projects" msgstr "Aktiviere Projektcodes für die Verfolgung von Projekten" -#: common/models.py:2024 +#: common/models.py:2017 msgid "Stocktake Functionality" msgstr "Inventurfunktionen" -#: common/models.py:2026 +#: common/models.py:2019 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:2032 +#: common/models.py:2025 msgid "Exclude External Locations" msgstr "Externe Standorte ausschließen" -#: common/models.py:2034 +#: common/models.py:2027 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:2040 +#: common/models.py:2033 msgid "Automatic Stocktake Period" msgstr "Automatische Inventur-Periode" -#: common/models.py:2042 +#: common/models.py:2035 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:2048 +#: common/models.py:2041 msgid "Report Deletion Interval" msgstr "Löschintervall für Berichte" -#: common/models.py:2050 +#: common/models.py:2043 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:2057 +#: common/models.py:2050 msgid "Display Users full names" msgstr "Vollständige Namen von Benutzern anzeigen" -#: common/models.py:2058 +#: common/models.py:2051 msgid "Display Users full names instead of usernames" msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen" -#: common/models.py:2063 +#: common/models.py:2056 msgid "Enable Test Station Data" msgstr "Teststation-Daten aktivieren" -#: common/models.py:2064 +#: common/models.py:2057 msgid "Enable test station data collection for test results" msgstr "Teststation-Datenerfassung für Testergebnisse aktivieren" -#: common/models.py:2076 common/models.py:2486 +#: common/models.py:2069 common/models.py:2479 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:2119 +#: common/models.py:2112 msgid "Hide inactive parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2121 +#: common/models.py:2114 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen" -#: common/models.py:2127 +#: common/models.py:2120 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:2128 +#: common/models.py:2121 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:2133 +#: common/models.py:2126 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:2134 +#: common/models.py:2127 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:2139 +#: common/models.py:2132 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:2140 +#: common/models.py:2133 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:2145 +#: common/models.py:2138 msgid "Show invalid BOMs" -msgstr "" +msgstr "Zeige ungültige Stücklisten" -#: common/models.py:2146 +#: common/models.py:2139 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:2151 +#: common/models.py:2144 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:2152 +#: common/models.py:2145 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:2157 +#: common/models.py:2150 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:2158 +#: common/models.py:2151 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:2163 +#: common/models.py:2156 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:2164 +#: common/models.py:2157 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:2169 +#: common/models.py:2162 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:2170 +#: common/models.py:2163 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:2175 +#: common/models.py:2168 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:2176 +#: common/models.py:2169 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:2181 +#: common/models.py:2174 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:2182 +#: common/models.py:2175 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:2187 +#: common/models.py:2180 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:2188 +#: common/models.py:2181 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:2193 +#: common/models.py:2186 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:2194 +#: common/models.py:2187 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:2199 +#: common/models.py:2192 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:2200 +#: common/models.py:2193 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:2205 +#: common/models.py:2198 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:2206 +#: common/models.py:2199 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:2211 +#: common/models.py:2204 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:2212 +#: common/models.py:2205 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:2217 +#: common/models.py:2210 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:2218 +#: common/models.py:2211 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:2223 +#: common/models.py:2216 msgid "Show pending SO shipments" msgstr "Ausstehende Versandaufträge anzeigen" -#: common/models.py:2224 +#: common/models.py:2217 msgid "Show pending SO shipments on the homepage" msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen" -#: common/models.py:2229 +#: common/models.py:2222 msgid "Show News" msgstr "Zeige Neuigkeiten" -#: common/models.py:2230 +#: common/models.py:2223 msgid "Show news on the homepage" msgstr "Neuigkeiten auf der Startseite anzeigen" -#: common/models.py:2235 +#: common/models.py:2228 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:2237 +#: common/models.py:2230 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:2243 +#: common/models.py:2236 msgid "Default label printer" msgstr "Standard-Etikettendrucker" -#: common/models.py:2245 +#: common/models.py:2238 msgid "Configure which label printer should be selected by default" msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren" -#: common/models.py:2251 +#: common/models.py:2244 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:2253 +#: common/models.py:2246 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:2259 +#: common/models.py:2252 msgid "Search Parts" msgstr "Teile suchen" -#: common/models.py:2260 +#: common/models.py:2253 msgid "Display parts in search preview window" msgstr "Teile in der Suchvorschau anzeigen" -#: common/models.py:2265 +#: common/models.py:2258 msgid "Search Supplier Parts" msgstr "Zulieferteile durchsuchen" -#: common/models.py:2266 +#: common/models.py:2259 msgid "Display supplier parts in search preview window" msgstr "Zuliefererteile in der Suchvorschau anzeigen" -#: common/models.py:2271 +#: common/models.py:2264 msgid "Search Manufacturer Parts" msgstr "Herstellerteile durchsuchen" -#: common/models.py:2272 +#: common/models.py:2265 msgid "Display manufacturer parts in search preview window" msgstr "Herstellerteile in der Suchvorschau anzeigen" -#: common/models.py:2277 +#: common/models.py:2270 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2278 +#: common/models.py:2271 msgid "Excluded inactive parts from search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:2283 +#: common/models.py:2276 msgid "Search Categories" msgstr "Kategorien durchsuchen" -#: common/models.py:2284 +#: common/models.py:2277 msgid "Display part categories in search preview window" msgstr "Teilekategorien in der Suchvorschau anzeigen" -#: common/models.py:2289 +#: common/models.py:2282 msgid "Search Stock" msgstr "Bestand durchsuchen" -#: common/models.py:2290 +#: common/models.py:2283 msgid "Display stock items in search preview window" msgstr "Lagerartikel in Suchvorschau anzeigen" -#: common/models.py:2295 +#: common/models.py:2288 msgid "Hide Unavailable Stock Items" msgstr "Nicht verfügbare Artikel ausblenden" -#: common/models.py:2297 +#: common/models.py:2290 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:2303 +#: common/models.py:2296 msgid "Search Locations" msgstr "Lagerorte durchsuchen" -#: common/models.py:2304 +#: common/models.py:2297 msgid "Display stock locations in search preview window" msgstr "Lagerorte in Suchvorschau anzeigen" -#: common/models.py:2309 +#: common/models.py:2302 msgid "Search Companies" msgstr "Firmen durchsuchen" -#: common/models.py:2310 +#: common/models.py:2303 msgid "Display companies in search preview window" msgstr "Firmen in der Suchvorschau anzeigen" -#: common/models.py:2315 +#: common/models.py:2308 msgid "Search Build Orders" msgstr "Bauaufträge durchsuchen" -#: common/models.py:2316 +#: common/models.py:2309 msgid "Display build orders in search preview window" msgstr "Bauaufträge in der Suchvorschau anzeigen" -#: common/models.py:2321 +#: common/models.py:2314 msgid "Search Purchase Orders" msgstr "Bestellungen durchsuchen" -#: common/models.py:2322 +#: common/models.py:2315 msgid "Display purchase orders in search preview window" msgstr "Bestellungen in der Suchvorschau anzeigen" -#: common/models.py:2327 +#: common/models.py:2320 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktive Bestellungen ausblenden" -#: common/models.py:2329 +#: common/models.py:2322 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden" -#: common/models.py:2335 +#: common/models.py:2328 msgid "Search Sales Orders" msgstr "Aufträge durchsuchen" -#: common/models.py:2336 +#: common/models.py:2329 msgid "Display sales orders in search preview window" msgstr "Aufträge in der Suchvorschau anzeigen" -#: common/models.py:2341 +#: common/models.py:2334 msgid "Exclude Inactive Sales Orders" msgstr "Inaktive Aufträge ausblenden" -#: common/models.py:2343 +#: common/models.py:2336 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktive Aufträge in der Suchvorschau ausblenden" -#: common/models.py:2349 +#: common/models.py:2342 msgid "Search Return Orders" msgstr "Suche nach Rücksendungen" -#: common/models.py:2350 +#: common/models.py:2343 msgid "Display return orders in search preview window" msgstr "Rücksendungen in der Suchvorschau anzeigen" -#: common/models.py:2355 +#: common/models.py:2348 msgid "Exclude Inactive Return Orders" msgstr "Inaktive Rücksendungen ausblenden" -#: common/models.py:2357 +#: common/models.py:2350 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden" -#: common/models.py:2363 +#: common/models.py:2356 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:2365 +#: common/models.py:2358 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:2371 +#: common/models.py:2364 msgid "Regex Search" msgstr "Regex Suche" -#: common/models.py:2372 +#: common/models.py:2365 msgid "Enable regular expressions in search queries" msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren" -#: common/models.py:2377 +#: common/models.py:2370 msgid "Whole Word Search" msgstr "Ganzes Wort suchen" -#: common/models.py:2378 +#: common/models.py:2371 msgid "Search queries return results for whole word matches" msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen" -#: common/models.py:2383 +#: common/models.py:2376 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:2384 +#: common/models.py:2377 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:2389 +#: common/models.py:2382 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:2390 +#: common/models.py:2383 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:2395 +#: common/models.py:2388 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:2396 +#: common/models.py:2389 msgid "The navbar position is fixed to the top of the screen" msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:2401 +#: common/models.py:2394 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:2402 +#: common/models.py:2395 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:2415 part/templates/part/detail.html:41 +#: common/models.py:2408 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Teilzeitplanung" -#: common/models.py:2416 +#: common/models.py:2409 msgid "Display part scheduling information" msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:2421 part/templates/part/detail.html:62 +#: common/models.py:2414 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventur" -#: common/models.py:2423 +#: common/models.py:2416 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)" -#: common/models.py:2429 +#: common/models.py:2422 msgid "Table String Length" msgstr "Zeichenkettenlänge in Tabellen" -#: common/models.py:2431 +#: common/models.py:2424 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:2437 +#: common/models.py:2430 msgid "Default part label template" msgstr "Standardvorlage für Teilebeschriftung" -#: common/models.py:2438 +#: common/models.py:2431 msgid "The part label template to be automatically selected" msgstr "Die Teil-Etikettenvorlage, die automatisch ausgewählt werden soll" -#: common/models.py:2443 +#: common/models.py:2436 msgid "Default stock item template" msgstr "Lagerartikel-Standardvorlage" -#: common/models.py:2445 +#: common/models.py:2438 msgid "The stock item label template to be automatically selected" msgstr "Die Lagerartikel-Etikettenvorlage soll automatisch ausgewählt werden" -#: common/models.py:2451 +#: common/models.py:2444 msgid "Default stock location label template" msgstr "Standardetikettenvorlage für Lagerstandort" -#: common/models.py:2453 +#: common/models.py:2446 msgid "The stock location label template to be automatically selected" msgstr "Die Lagerstandort-Etikettenvorlage, die automatisch ausgewählt werden soll" -#: common/models.py:2459 +#: common/models.py:2452 msgid "Default build line label template" -msgstr "" +msgstr "Standardetikettenvorlage für Bauauftragspositionen" -#: common/models.py:2461 +#: common/models.py:2454 msgid "The build line label template to be automatically selected" -msgstr "" +msgstr "Die Bauauftragspositionsetikettenvorlage welche automatisch ausgewählt werden soll" -#: common/models.py:2467 +#: common/models.py:2460 msgid "Receive error reports" msgstr "Fehlerberichte empfangen" -#: common/models.py:2468 +#: common/models.py:2461 msgid "Receive notifications for system errors" msgstr "Benachrichtigungen bei Systemfehlern erhalten" -#: common/models.py:2473 +#: common/models.py:2466 msgid "Last used printing machines" msgstr "Zuletzt verwendete Druckmaschinen" -#: common/models.py:2474 +#: common/models.py:2467 msgid "Save the last used printing machines for a user" msgstr "Die zuletzt benutzten Druckmaschinen für einen Benutzer speichern" -#: common/models.py:2517 +#: common/models.py:2487 common/models.py:2488 common/models.py:2636 +#: common/models.py:2637 common/models.py:2882 common/models.py:2883 +#: common/models.py:3193 common/models.py:3194 part/models.py:3193 +#: part/models.py:3280 part/models.py:3353 part/models.py:3381 +#: plugin/models.py:274 plugin/models.py:275 +#: report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3036 users/models.py:111 +msgid "User" +msgstr "Benutzer" + +#: common/models.py:2510 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:2524 company/serializers.py:496 order/admin.py:42 -#: order/models.py:1333 order/models.py:2241 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1885 +#: common/models.py:2517 company/serializers.py:472 order/admin.py:42 +#: order/models.py:1346 order/models.py:2265 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1886 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:741 +#: templates/js/translated/return_order.js:740 msgid "Price" msgstr "Preis" -#: common/models.py:2525 +#: common/models.py:2518 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:2696 common/models.py:2881 +#: common/models.py:2613 common/models.py:2798 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:2697 +#: common/models.py:2614 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:2707 +#: common/models.py:2624 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:2711 company/models.py:160 company/models.py:813 -#: machine/models.py:39 part/admin.py:88 part/models.py:1045 -#: plugin/models.py:56 templates/js/translated/company.js:523 +#: common/models.py:2628 company/models.py:163 company/models.py:782 +#: machine/models.py:39 part/admin.py:88 part/models.py:1081 +#: 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 @@ -3586,138 +3412,210 @@ msgstr "Name für diesen Webhook" msgid "Active" msgstr "Aktiv" -#: common/models.py:2711 +#: common/models.py:2628 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:2727 users/models.py:159 +#: common/models.py:2644 users/models.py:159 msgid "Token" -msgstr "" +msgstr "Token" -#: common/models.py:2728 +#: common/models.py:2645 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:2736 +#: common/models.py:2653 msgid "Secret" msgstr "Geheimnis" -#: common/models.py:2737 +#: common/models.py:2654 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:2845 +#: common/models.py:2762 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:2846 +#: common/models.py:2763 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:2854 +#: common/models.py:2771 msgid "Host" -msgstr "" +msgstr "Host" -#: common/models.py:2855 +#: common/models.py:2772 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:2863 +#: common/models.py:2780 msgid "Header" msgstr "Kopfzeile" -#: common/models.py:2864 +#: common/models.py:2781 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:2871 +#: common/models.py:2788 msgid "Body" -msgstr "" +msgstr "Body" -#: common/models.py:2872 +#: common/models.py:2789 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:2882 +#: common/models.py:2799 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:2887 +#: common/models.py:2804 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:2888 +#: common/models.py:2805 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" -#: common/models.py:3014 +#: common/models.py:2931 msgid "Id" msgstr "ID" -#: common/models.py:3016 templates/js/translated/company.js:965 +#: common/models.py:2933 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:3020 templates/js/translated/news.js:60 +#: common/models.py:2935 common/models.py:3177 company/models.py:149 +#: company/models.py:440 company/models.py:500 company/models.py:799 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 +#: part/admin.py:55 part/models.py:955 +#: 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:2456 +#: templates/js/translated/purchase_order.js:2040 +#: templates/js/translated/purchase_order.js:2204 +#: templates/js/translated/return_order.js:779 +#: templates/js/translated/sales_order.js:1092 +#: templates/js/translated/sales_order.js:2023 +msgid "Link" +msgstr "Link" + +#: common/models.py:2937 templates/js/translated/news.js:60 msgid "Published" msgstr "Veröffentlicht" -#: common/models.py:3022 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2939 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:3024 templates/js/translated/news.js:52 +#: common/models.py:2941 templates/js/translated/news.js:52 msgid "Summary" msgstr "Zusammenfassung" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Read" msgstr "Gelesen" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Was this news item read?" msgstr "Wurde diese Nachricht gelesen?" -#: common/models.py:3044 company/models.py:156 part/models.py:929 +#: common/models.py:2961 company/models.py:159 part/models.py:965 #: 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_base.html:35 +#: report/templates/report/inventree_return_order_report.html:35 #: stock/templates/stock/item_base.html:133 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Bild" -#: common/models.py:3044 +#: common/models.py:2961 msgid "Image file" msgstr "Bilddatei" -#: common/models.py:3086 +#: common/models.py:2973 common/models.py:3161 +msgid "Target model type for this image" +msgstr "" + +#: common/models.py:2977 +msgid "Target model ID for this image" +msgstr "" + +#: common/models.py:3018 msgid "Unit name must be a valid identifier" msgstr "Einheitsname muss eine gültige Kennung sein" -#: common/models.py:3105 +#: common/models.py:3037 msgid "Unit name" msgstr "Einheitsname" -#: common/models.py:3112 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3044 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" -msgstr "" +msgstr "Symbol" -#: common/models.py:3113 +#: common/models.py:3045 msgid "Optional unit symbol" msgstr "Optionales Einheitssymbol" -#: common/models.py:3120 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3052 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" -msgstr "" +msgstr "Definition" -#: common/models.py:3121 +#: common/models.py:3053 msgid "Unit definition" msgstr "Einheitsdefinition" +#: common/models.py:3111 common/models.py:3168 stock/models.py:2426 +#: templates/js/translated/attachment.js:119 +#: templates/js/translated/attachment.js:345 +msgid "Attachment" +msgstr "Anhang" + +#: common/models.py:3123 +msgid "Missing file" +msgstr "Fehlende Datei" + +#: common/models.py:3124 +msgid "Missing external link" +msgstr "Fehlender externer Link" + +#: common/models.py:3169 +msgid "Select file to attach" +msgstr "Datei zum Anhängen auswählen" + +#: common/models.py:3184 templates/js/translated/attachment.js:120 +#: templates/js/translated/attachment.js:360 +msgid "Comment" +msgstr "Kommentar" + +#: common/models.py:3185 +msgid "Attachment comment" +msgstr "" + +#: common/models.py:3201 +msgid "Upload date" +msgstr "" + +#: common/models.py:3202 +msgid "Date the file was uploaded" +msgstr "" + +#: common/models.py:3206 +msgid "File size" +msgstr "" + +#: common/models.py:3206 +msgid "File size in bytes" +msgstr "" + +#: common/models.py:3244 common/serializers.py:553 +msgid "Invalid model type specified for attachment" +msgstr "" + #: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" @@ -3736,7 +3634,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:468 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:472 msgid "Items Received" msgstr "Artikel erhalten" @@ -3752,66 +3650,95 @@ msgstr "Artikel wurden aus einer Rücksendung erhalten" msgid "Error raised by plugin" msgstr "Fehler in Plugin aufgetreten" -#: common/serializers.py:333 +#: common/serializers.py:371 msgid "Is Running" msgstr "Wird ausgeführt" -#: common/serializers.py:339 +#: common/serializers.py:377 msgid "Pending Tasks" msgstr "Anstehende Aufgaben" -#: common/serializers.py:345 +#: common/serializers.py:383 msgid "Scheduled Tasks" msgstr "Geplante Aufgaben" -#: common/serializers.py:351 +#: common/serializers.py:389 msgid "Failed Tasks" msgstr "Fehlgeschlagene Aufgaben" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Task ID" msgstr "Aufgabe-ID" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Unique task ID" msgstr "Eindeutige Aufgaben-ID" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock" msgstr "Sperren" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock time" msgstr "Sperrzeit" -#: common/serializers.py:370 +#: common/serializers.py:408 msgid "Task name" msgstr "Aufgabenname" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function" msgstr "Funktion" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function name" msgstr "Funktionsname" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Arguments" msgstr "Parameter" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Task arguments" msgstr "Aufgaben-Parameter" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Keyword Arguments" msgstr "Schlüsselwort Parameter" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Task keyword arguments" msgstr "Schlüsselwort Parameter für Aufgaben" +#: common/serializers.py:525 +msgid "Filename" +msgstr "Dateiname" + +#: common/serializers.py:532 report/api.py:100 report/serializers.py:53 +msgid "Model Type" +msgstr "" + +#: common/serializers.py:559 +msgid "User does not have permission to create or edit attachments for this model" +msgstr "" + +#: common/validators.py:77 +msgid "Minimum places cannot be greater than maximum places" +msgstr "" + +#: common/validators.py:89 +msgid "Maximum places cannot be less than minimum places" +msgstr "" + +#: common/validators.py:100 +msgid "An empty domain is not allowed." +msgstr "Eine leere Domain ist nicht erlaubt." + +#: common/validators.py:102 +#, python-brace-format +msgid "Invalid domain name: {domain}" +msgstr "Ungültiger Domainname: {domain}" + #: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 @@ -3850,210 +3777,222 @@ msgstr "Teile importiert" msgid "Previous Step" msgstr "Vorheriger Schritt" -#: company/api.py:164 +#: company/api.py:144 msgid "Part is Active" -msgstr "" +msgstr "Teil ist aktiv" -#: company/api.py:168 +#: company/api.py:148 msgid "Manufacturer is Active" -msgstr "" +msgstr "Hersteller ist aktiv" -#: company/api.py:317 +#: company/api.py:281 msgid "Supplier Part is Active" -msgstr "" +msgstr "Lieferantenteil ist aktiv" -#: company/api.py:321 +#: company/api.py:285 msgid "Internal Part is Active" -msgstr "" +msgstr "Internes Teil ist aktiv" -#: company/api.py:325 +#: company/api.py:289 msgid "Supplier is Active" -msgstr "" +msgstr "Lieferant ist aktiv" -#: company/models.py:114 -msgid "Company description" -msgstr "Firmenbeschreibung" - -#: company/models.py:115 -msgid "Description of the company" -msgstr "Firmenbeschreibung" - -#: company/models.py:120 company/templates/company/company_base.html:106 -#: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 -msgid "Website" -msgstr "" - -#: company/models.py:120 -msgid "Company website URL" -msgstr "Firmenwebsite Adresse/URL" - -#: company/models.py:125 -msgid "Phone number" -msgstr "Kontakt-Tel." - -#: company/models.py:127 -msgid "Contact phone number" -msgstr "Kontakt-Telefon" - -#: company/models.py:134 -msgid "Contact email address" -msgstr "Kontakt-Email" - -#: company/models.py:139 company/templates/company/company_base.html:145 -#: order/models.py:331 order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:214 -msgid "Contact" -msgstr "Kontakt" - -#: company/models.py:141 -msgid "Point of contact" -msgstr "Anlaufstelle" - -#: company/models.py:147 -msgid "Link to external company information" -msgstr "Link auf externe Firmeninformation" - -#: company/models.py:160 -msgid "Is this company active?" -msgstr "" - -#: company/models.py:165 -msgid "is customer" -msgstr "ist Kunde" - -#: company/models.py:166 -msgid "Do you sell items to this company?" -msgstr "Verkaufen Sie Teile an diese Firma?" - -#: company/models.py:171 -msgid "is supplier" -msgstr "ist Zulieferer" - -#: company/models.py:172 -msgid "Do you purchase items from this company?" -msgstr "Kaufen Sie Teile von dieser Firma?" - -#: company/models.py:177 -msgid "is manufacturer" -msgstr "ist Hersteller" - -#: company/models.py:178 -msgid "Does this company manufacture parts?" -msgstr "Produziert diese Firma Teile?" - -#: company/models.py:186 -msgid "Default currency used for this company" -msgstr "Standard-Währung für diese Firma" - -#: company/models.py:273 company/models.py:382 +#: company/models.py:100 company/models.py:365 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:776 +#: company/templates/company/company_base.html:12 stock/api.py:806 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 msgid "Company" msgstr "Firma" -#: company/models.py:383 +#: company/models.py:101 company/views.py:51 +#: templates/js/translated/search.js:192 +msgid "Companies" +msgstr "Firmen" + +#: company/models.py:117 +msgid "Company description" +msgstr "Firmenbeschreibung" + +#: company/models.py:118 +msgid "Description of the company" +msgstr "Firmenbeschreibung" + +#: company/models.py:123 company/templates/company/company_base.html:106 +#: templates/InvenTree/settings/plugin_settings.html:54 +#: templates/js/translated/company.js:532 +msgid "Website" +msgstr "Webseite" + +#: company/models.py:123 +msgid "Company website URL" +msgstr "Firmenwebsite Adresse/URL" + +#: company/models.py:128 +msgid "Phone number" +msgstr "Kontakt-Tel." + +#: company/models.py:130 +msgid "Contact phone number" +msgstr "Kontakt-Telefon" + +#: company/models.py:137 +msgid "Contact email address" +msgstr "Kontakt-Email" + +#: company/models.py:142 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 +msgid "Contact" +msgstr "Kontakt" + +#: company/models.py:144 +msgid "Point of contact" +msgstr "Anlaufstelle" + +#: company/models.py:150 +msgid "Link to external company information" +msgstr "Link auf externe Firmeninformation" + +#: company/models.py:163 +msgid "Is this company active?" +msgstr "Ist dieses Unternehmen aktiv?" + +#: company/models.py:168 +msgid "is customer" +msgstr "ist Kunde" + +#: company/models.py:169 +msgid "Do you sell items to this company?" +msgstr "Verkaufen Sie Teile an diese Firma?" + +#: company/models.py:174 +msgid "is supplier" +msgstr "ist Zulieferer" + +#: company/models.py:175 +msgid "Do you purchase items from this company?" +msgstr "Kaufen Sie Teile von dieser Firma?" + +#: company/models.py:180 +msgid "is manufacturer" +msgstr "ist Hersteller" + +#: company/models.py:181 +msgid "Does this company manufacture parts?" +msgstr "Produziert diese Firma Teile?" + +#: company/models.py:189 +msgid "Default currency used for this company" +msgstr "Standard-Währung für diese Firma" + +#: company/models.py:366 msgid "Select company" msgstr "Firma auswählen" -#: company/models.py:388 +#: company/models.py:371 msgid "Address title" msgstr "Adresstitel" -#: company/models.py:389 +#: company/models.py:372 msgid "Title describing the address entry" msgstr "Titel zur Beschreibung des Adresseintrages" -#: company/models.py:395 +#: company/models.py:378 msgid "Primary address" msgstr "Primäre Adresse" -#: company/models.py:396 +#: company/models.py:379 msgid "Set as primary address" msgstr "Als primäre Adresse festlegen" -#: company/models.py:401 templates/js/translated/company.js:914 +#: company/models.py:384 templates/js/translated/company.js:914 #: templates/js/translated/company.js:971 msgid "Line 1" msgstr "Linie 1" -#: company/models.py:402 +#: company/models.py:385 msgid "Address line 1" msgstr "Adresszeile 1" -#: company/models.py:408 templates/js/translated/company.js:915 +#: company/models.py:391 templates/js/translated/company.js:915 #: templates/js/translated/company.js:977 msgid "Line 2" msgstr "Linie 2" -#: company/models.py:409 +#: company/models.py:392 msgid "Address line 2" msgstr "Adresszeile 2" -#: company/models.py:415 company/models.py:416 +#: company/models.py:398 company/models.py:399 #: templates/js/translated/company.js:983 msgid "Postal code" msgstr "Postleitzahl" -#: company/models.py:422 +#: company/models.py:405 msgid "City/Region" msgstr "Stadt/Region" -#: company/models.py:423 +#: company/models.py:406 msgid "Postal code city/region" msgstr "Postleitzahl Stadt/Region" -#: company/models.py:429 +#: company/models.py:412 msgid "State/Province" msgstr "Staat/Provinz" -#: company/models.py:430 +#: company/models.py:413 msgid "State or province" msgstr "Bundesland" -#: company/models.py:436 templates/js/translated/company.js:1001 +#: company/models.py:419 templates/js/translated/company.js:1001 msgid "Country" msgstr "Land" -#: company/models.py:437 +#: company/models.py:420 msgid "Address country" msgstr "Adresse Land" -#: company/models.py:443 +#: company/models.py:426 msgid "Courier shipping notes" msgstr "Versandnotizen" -#: company/models.py:444 +#: company/models.py:427 msgid "Notes for shipping courier" msgstr "Notizen für Versandkurier" -#: company/models.py:450 +#: company/models.py:433 msgid "Internal shipping notes" msgstr "Interne Versandnotizen" -#: company/models.py:451 +#: company/models.py:434 msgid "Shipping notes for internal use" msgstr "Versandnotizen für interne Verwendung" -#: company/models.py:458 +#: company/models.py:441 msgid "Link to address information (external)" msgstr "Link zu Adressinformationen (extern)" -#: company/models.py:489 company/models.py:791 stock/models.py:751 -#: stock/serializers.py:266 stock/templates/stock/item_base.html:142 +#: company/models.py:463 company/models.py:574 company/models.py:792 +#: 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:475 company/models.py:760 stock/models.py:766 +#: stock/serializers.py:422 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basisteil" -#: company/models.py:491 company/models.py:793 +#: company/models.py:477 company/models.py:762 msgid "Select part" msgstr "Teil auswählen" -#: company/models.py:500 company/templates/company/company_base.html:82 +#: company/models.py:486 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:515 +#: company/templates/company/supplier_part.html:145 part/serializers.py:517 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4063,190 +4002,191 @@ msgstr "Teil auswählen" msgid "Manufacturer" msgstr "Hersteller" -#: company/models.py:501 +#: company/models.py:487 msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/models.py:507 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:525 +#: company/models.py:493 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:527 #: 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:1800 -#: templates/js/translated/purchase_order.js:1852 -#: templates/js/translated/purchase_order.js:2054 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1801 +#: templates/js/translated/purchase_order.js:1851 +#: templates/js/translated/purchase_order.js:2053 msgid "MPN" -msgstr "" +msgstr "MPN" -#: company/models.py:508 +#: company/models.py:494 msgid "Manufacturer Part Number" msgstr "Hersteller-Teilenummer" -#: company/models.py:515 +#: company/models.py:501 msgid "URL for external manufacturer part link" msgstr "Externe URL für das Herstellerteil" -#: company/models.py:523 +#: company/models.py:510 msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" -#: company/models.py:580 company/models.py:607 company/models.py:823 -#: 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:614 +#: company/models.py:581 msgid "Parameter name" msgstr "Parametername" -#: company/models.py:620 -#: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2436 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1492 -#: templates/js/translated/stock.js:1519 +#: company/models.py:587 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2418 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1493 +#: templates/js/translated/stock.js:1522 msgid "Value" msgstr "Wert" -#: company/models.py:621 +#: company/models.py:588 msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:628 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1009 part/models.py:3623 +#: company/models.py:595 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1045 part/models.py:3646 #: part/templates/part/part_base.html:284 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1511 -#: templates/js/translated/part.js:1615 templates/js/translated/part.js:2370 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1512 +#: templates/js/translated/part.js:1616 templates/js/translated/part.js:2370 msgid "Units" msgstr "Einheiten" -#: company/models.py:629 +#: company/models.py:596 msgid "Parameter units" msgstr "Parametereinheit" -#: company/models.py:731 +#: company/models.py:648 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:452 +#: stock/models.py:777 stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:1600 +#: templates/js/translated/purchase_order.js:752 +#: templates/js/translated/stock.js:2280 +msgid "Supplier Part" +msgstr "Zuliefererteil" + +#: company/models.py:700 msgid "Pack units must be compatible with the base part units" msgstr "Packeinheiten müssen mit den Basisteileinheiten kompatibel sein" -#: company/models.py:738 +#: company/models.py:707 msgid "Pack units must be greater than zero" msgstr "Packeinheiten müssen größer als Null sein" -#: company/models.py:752 +#: company/models.py:721 msgid "Linked manufacturer part must reference the same base part" msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" -#: company/models.py:801 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:465 +#: company/models.py:770 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:499 plugin/builtin/suppliers/digikey.py:25 +#: part/serializers.py:501 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:1768 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1769 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1690 +#: templates/js/translated/purchase_order.js:1689 #: templates/js/translated/table_filters.js:804 msgid "Supplier" msgstr "Zulieferer" -#: company/models.py:802 +#: company/models.py:771 msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:808 part/serializers.py:510 +#: company/models.py:777 part/serializers.py:512 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" -#: company/models.py:814 +#: company/models.py:783 msgid "Is this supplier part active?" -msgstr "" +msgstr "Ist dieser Lieferantenteil aktiv?" -#: company/models.py:824 +#: company/models.py:793 msgid "Select manufacturer part" msgstr "Herstellerteil auswählen" -#: company/models.py:831 +#: company/models.py:800 msgid "URL for external supplier part link" msgstr "Teil-URL des Zulieferers" -#: company/models.py:839 +#: company/models.py:809 msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" -#: company/models.py:846 company/templates/company/supplier_part.html:187 -#: part/admin.py:418 part/models.py:4070 part/templates/part/upload_bom.html:59 +#: company/models.py:816 company/templates/company/supplier_part.html:187 +#: part/admin.py:412 part/models.py:4093 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 -#: report/templates/report/inventree_po_report_base.html:32 -#: report/templates/report/inventree_return_order_report_base.html:27 -#: report/templates/report/inventree_slr_report.html:105 -#: report/templates/report/inventree_so_report_base.html:32 -#: stock/serializers.py:579 +#: 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:710 msgid "Note" msgstr "Notiz" -#: company/models.py:855 part/models.py:1967 +#: company/models.py:825 part/models.py:2003 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:856 part/models.py:1968 +#: company/models.py:826 part/models.py:2004 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" -#: company/models.py:863 company/templates/company/supplier_part.html:160 -#: stock/admin.py:224 stock/models.py:782 stock/serializers.py:1350 +#: company/models.py:833 company/templates/company/supplier_part.html:160 +#: stock/admin.py:228 stock/models.py:797 stock/serializers.py:1466 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2424 msgid "Packaging" msgstr "Verpackungen" -#: company/models.py:864 +#: company/models.py:834 msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:869 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 +#: company/models.py:839 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 #: 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:2085 -#: templates/js/translated/purchase_order.js:2102 +#: templates/js/translated/purchase_order.js:2084 +#: templates/js/translated/purchase_order.js:2101 msgid "Pack Quantity" msgstr "Packmenge" -#: company/models.py:871 +#: company/models.py:841 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:890 part/models.py:1974 +#: company/models.py:860 part/models.py:2010 msgid "multiple" msgstr "Vielfache" -#: company/models.py:891 +#: company/models.py:861 msgid "Order multiple" msgstr "Mehrere bestellen" -#: company/models.py:903 +#: company/models.py:873 msgid "Quantity available from supplier" msgstr "Verfügbare Menge von Lieferanten" -#: company/models.py:909 +#: company/models.py:879 msgid "Availability Updated" msgstr "Verfügbarkeit aktualisiert" -#: company/models.py:910 +#: company/models.py:880 msgid "Date of last update of availability data" msgstr "Datum des letzten Updates der Verfügbarkeitsdaten" -#: company/serializers.py:163 +#: company/serializers.py:161 msgid "Default currency used for this supplier" msgstr "Standard-Währung für diesen Zulieferer" -#: company/serializers.py:381 part/admin.py:126 +#: company/serializers.py:357 part/admin.py:126 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4257,8 +4197,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:306 -#: templates/js/translated/part.js:814 templates/js/translated/part.js:1218 +#: templates/js/translated/model_renderers.js:312 +#: templates/js/translated/part.js:815 templates/js/translated/part.js:1219 msgid "Inactive" msgstr "Inaktiv" @@ -4293,11 +4233,11 @@ msgstr "Firma löschen" #: company/templates/company/manufacturer_part.html:51 #: company/templates/company/supplier_part.html:83 #: part/templates/part/part_thumb.html:20 -#: report/templates/report/inventree_build_order_base.html:98 -#: report/templates/report/inventree_po_report_base.html:40 -#: report/templates/report/inventree_so_report_base.html:40 -#: report/templates/report/inventree_test_report_base.html:84 -#: report/templates/report/inventree_test_report_base.html:163 +#: report/templates/report/inventree_build_order_report.html:98 +#: report/templates/report/inventree_purchase_order_report.html:40 +#: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_test_report.html:84 +#: report/templates/report/inventree_test_report.html:163 msgid "Part image" msgstr "Artikelbild" @@ -4316,15 +4256,15 @@ msgstr "Bild von URL herunterladen" msgid "Delete image" msgstr "Bild löschen" -#: company/templates/company/company_base.html:92 order/models.py:910 -#: order/models.py:2008 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:804 -#: stock/models.py:805 stock/serializers.py:1100 +#: company/templates/company/company_base.html:92 order/models.py:938 +#: order/models.py:2032 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:819 +#: stock/models.py:820 stock/serializers.py:1216 #: 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:296 -#: templates/js/translated/sales_order.js:784 +#: templates/js/translated/return_order.js:295 +#: templates/js/translated/sales_order.js:820 #: templates/js/translated/stock.js:2959 #: templates/js/translated/table_filters.js:808 msgid "Customer" @@ -4334,10 +4274,10 @@ msgstr "Kunde" msgid "Uses default currency" msgstr "verwendet Standard-Währung" -#: company/templates/company/company_base.html:124 order/models.py:341 +#: 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:221 +#: order/templates/order/sales_order_base.html:225 msgid "Address" msgstr "Adresse" @@ -4346,7 +4286,7 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:528 +#: part/templates/part/part_base.html:527 msgid "Remove Image" msgstr "Bild entfernen" @@ -4355,19 +4295,19 @@ msgid "Remove associated image from this company" msgstr "Verknüpftes Bild von dieser Firma entfernen" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:530 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Entfernen" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:560 +#: part/templates/part/part_base.html:559 msgid "Upload Image" msgstr "Bild hochladen" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:614 +#: part/templates/part/part_base.html:613 msgid "Download Image" msgstr "Bild herunterladen" @@ -4520,7 +4460,7 @@ 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:454 +#: company/templates/company/supplier_part.html:97 order/api.py:458 msgid "Internal Part" msgstr "Internes Teil" @@ -4530,7 +4470,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:821 +#: part/admin.py:122 part/serializers.py:824 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4550,8 +4490,8 @@ msgstr "Parameter" msgid "New Parameter" msgstr "Neuer Parameter" -#: company/templates/company/manufacturer_part.html:206 -#: templates/js/translated/part.js:1422 +#: company/templates/company/manufacturer_part.html:196 +#: templates/js/translated/part.js:1423 msgid "Add Parameter" msgstr "Parameter hinzufügen" @@ -4579,15 +4519,6 @@ msgstr "Kontakte" msgid "Addresses" msgstr "Adressen" -#: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:448 -#: stock/models.py:762 stock/templates/stock/item_base.html:233 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2279 -msgid "Supplier Part" -msgstr "Zuliefererteil" - #: company/templates/company/supplier_part.html:50 #: templates/js/translated/company.js:1526 msgid "Supplier part actions" @@ -4630,11 +4561,11 @@ msgid "No supplier information available" msgstr "Keine Lieferanteninformationen verfügbar" #: company/templates/company/supplier_part.html:139 part/bom.py:279 -#: part/bom.py:311 part/serializers.py:509 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 +#: part/bom.py:311 part/serializers.py:511 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1787 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1851 -#: templates/js/translated/purchase_order.js:2029 +#: templates/js/translated/purchase_order.js:1850 +#: templates/js/translated/purchase_order.js:2028 msgid "SKU" msgstr "Lieferanten-Teilenummer" @@ -4643,12 +4574,12 @@ 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:199 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 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:200 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 #: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Neuer Lagerartikel" @@ -4680,15 +4611,15 @@ msgid "Update Part Availability" msgstr "Verfügbarkeit der Teile aktualisieren" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:820 part/stocktake.py:223 +#: part/serializers.py:823 part/stocktake.py:224 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 -#: stock/serializers.py:787 stock/serializers.py:951 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:68 +#: stock/serializers.py:918 stock/serializers.py:1082 #: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:184 -#: stock/templates/stock/location.html:196 +#: stock/templates/stock/location.html:191 +#: stock/templates/stock/location.html:203 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1061 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2766 #: users/models.py:206 msgid "Stock Items" @@ -4715,134 +4646,56 @@ msgstr "Kunden" msgid "New Customer" msgstr "Neuer Kunde" -#: company/views.py:51 templates/js/translated/search.js:192 -msgid "Companies" -msgstr "Firmen" - #: company/views.py:52 msgid "New Company" msgstr "Neue Firma" -#: label/api.py:247 -msgid "Error printing label" -msgstr "Fehler beim Drucken des Labels" +#: generic/states/tests.py:18 order/status_codes.py:13 +msgid "Placed" +msgstr "Platziert" -#: label/models.py:120 -msgid "Label name" -msgstr "Label Name" - -#: label/models.py:128 -msgid "Label description" -msgstr "Label Beschreibung" - -#: label/models.py:136 -msgid "Label" -msgstr "" - -#: label/models.py:137 -msgid "Label template file" -msgstr "Label-Vorlage-Datei" - -#: label/models.py:143 part/models.py:3494 report/models.py:324 -#: templates/js/translated/part.js:2900 -#: templates/js/translated/table_filters.js:481 -msgid "Enabled" -msgstr "Aktiviert" - -#: label/models.py:144 -msgid "Label template is enabled" -msgstr "Label-Vorlage ist aktiviert" - -#: label/models.py:149 -msgid "Width [mm]" -msgstr "Breite [mm]" - -#: label/models.py:150 -msgid "Label width, specified in mm" -msgstr "Label-Breite in mm" - -#: label/models.py:156 -msgid "Height [mm]" -msgstr "Höhe [mm]" - -#: label/models.py:157 -msgid "Label height, specified in mm" -msgstr "Label-Höhe in mm" - -#: label/models.py:163 report/models.py:317 -msgid "Filename Pattern" -msgstr "Dateinamen-Muster" - -#: label/models.py:164 -msgid "Pattern for generating label filenames" -msgstr "Muster für die Erstellung von Label-Dateinamen" - -#: label/models.py:313 label/models.py:352 label/models.py:377 -#: label/models.py:412 -msgid "Query filters (comma-separated list of key=value pairs)" -msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" - -#: label/models.py:314 label/models.py:353 label/models.py:378 -#: label/models.py:413 report/models.py:345 report/models.py:496 -#: report/models.py:532 report/models.py:568 report/models.py:750 -msgid "Filters" -msgstr "Filter" - -#: label/templates/label/part/part_label.html:31 -#: label/templates/label/stockitem/qr.html:21 -#: label/templates/label/stocklocation/qr.html:20 -#: templates/allauth_2fa/setup.html:18 -msgid "QR Code" -msgstr "QR-Code" - -#: label/templates/label/part/part_label_code128.html:31 -#: label/templates/label/stocklocation/qr_and_text.html:31 -#: templates/qr_code.html:7 -msgid "QR code" -msgstr "QR-Code" - -#: machine/machine_types/label_printer.py:217 +#: machine/machine_types/label_printer.py:218 msgid "Copies" msgstr "Kopien" -#: machine/machine_types/label_printer.py:218 +#: machine/machine_types/label_printer.py:219 msgid "Number of copies to print for each label" msgstr "Anzahl der zu druckenden Kopien für jedes Label" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Connected" msgstr "Verbunden" -#: machine/machine_types/label_printer.py:234 order/api.py:1511 -#: templates/js/translated/sales_order.js:1042 +#: machine/machine_types/label_printer.py:235 order/api.py:1467 +#: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Unbekannt" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Printing" msgstr "Drucken" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "No media" msgstr "Keine Medien" -#: machine/machine_types/label_printer.py:237 +#: machine/machine_types/label_printer.py:238 msgid "Disconnected" msgstr "Verbindung getrennt" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Label Printer" msgstr "Etikettendrucker" -#: machine/machine_types/label_printer.py:245 +#: machine/machine_types/label_printer.py:246 msgid "Directly print labels for various items." msgstr "Drucken Sie Etiketten direkt für verschiedene Artikel." -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Printer Location" msgstr "Druckerstandort" -#: machine/machine_types/label_printer.py:252 +#: machine/machine_types/label_printer.py:253 msgid "Scope the printer to a specific location" msgstr "Den Drucker an einen bestimmten Ort aufstellen" @@ -4902,591 +4755,648 @@ msgstr "Maschinenkonfiguration" msgid "Config type" msgstr "Konfigurationstyp" -#: order/admin.py:30 order/models.py:89 -#: report/templates/report/inventree_po_report_base.html:31 -#: report/templates/report/inventree_so_report_base.html:31 +#: 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:2126 -#: templates/js/translated/sales_order.js:1847 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Gesamtpreis" -#: order/api.py:157 order/templates/order/order_base.html:118 +#: order/api.py:157 order/serializers.py:90 +#: order/templates/order/order_base.html:118 #: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/sales_order_base.html:122 msgid "Order Status" msgstr "Bestellstatus" #: order/api.py:161 templates/js/translated/table_filters.js:194 #: templates/js/translated/table_filters.js:779 msgid "Has Pricing" -msgstr "" +msgstr "Hat Preise" #: order/api.py:236 msgid "No matching purchase order found" msgstr "Keine passende Bestellung gefunden" -#: order/api.py:433 order/api.py:813 order/models.py:1382 order/models.py:1489 -#: order/models.py:1535 order/models.py:1649 order/models.py:1803 -#: order/models.py:2207 order/models.py:2258 -#: templates/js/translated/sales_order.js:1488 +#: order/api.py:435 order/api.py:801 order/models.py:1395 order/models.py:1504 +#: order/models.py:1550 order/models.py:1664 order/models.py:1818 +#: order/models.py:2231 order/models.py:2282 +#: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Bestellung" -#: order/api.py:437 order/api.py:834 +#: order/api.py:439 order/api.py:822 msgid "Order Complete" -msgstr "" +msgstr "Bestellung abgeschlossen" -#: order/api.py:458 +#: order/api.py:462 msgid "Order Pending" -msgstr "" +msgstr "Bestellung ausstehend" -#: order/api.py:1505 order/models.py:1383 order/models.py:1490 -#: order/templates/order/order_base.html:9 +#: order/api.py:1461 order/models.py:380 order/models.py:1396 +#: order/models.py:1505 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 -#: report/templates/report/inventree_po_report_base.html:14 -#: stock/templates/stock/item_base.html:176 +#: report/templates/report/inventree_purchase_order_report.html:14 +#: stock/serializers.py:118 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1746 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:1674 -#: templates/js/translated/stock.js:2259 templates/js/translated/stock.js:2907 +#: templates/js/translated/purchase_order.js:1673 +#: templates/js/translated/stock.js:2260 templates/js/translated/stock.js:2907 msgid "Purchase Order" msgstr "Bestellung" -#: order/api.py:1509 order/models.py:2208 order/models.py:2259 -#: order/templates/order/return_order_base.html:9 +#: order/api.py:1465 order/models.py:1981 order/models.py:2232 +#: order/models.py:2283 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:13 -#: templates/js/translated/return_order.js:281 +#: report/templates/report/inventree_return_order_report.html:13 +#: templates/js/translated/return_order.js:280 #: templates/js/translated/stock.js:2941 msgid "Return Order" msgstr "Rücksendeauftrag" -#: order/models.py:90 +#: order/models.py:91 msgid "Total price for this order" msgstr "Gesamtpreis für diese Bestellung" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:96 order/serializers.py:70 msgid "Order Currency" msgstr "Auftragswährung" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:99 order/serializers.py:71 msgid "Currency for this order (leave blank to use company default)" msgstr "Währung für diesen Auftrag (leer lassen, um Firmenstandard zu verwenden)" -#: order/models.py:246 +#: order/models.py:247 msgid "Contact does not match selected company" msgstr "Kontakt stimmt nicht mit der ausgewählten Firma überein" -#: order/models.py:278 +#: order/models.py:290 msgid "Order description (optional)" msgstr "Auftragsbeschreibung (optional)" -#: order/models.py:287 +#: order/models.py:299 msgid "Select project code for this order" msgstr "Projektcode für diesen Auftrag auswählen" -#: order/models.py:291 order/models.py:1288 order/models.py:1702 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 msgid "Link to external page" msgstr "Link auf externe Seite" -#: order/models.py:299 +#: order/models.py:311 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Geplantes Lieferdatum für Auftrag." -#: order/models.py:313 +#: order/models.py:325 msgid "Created By" msgstr "Erstellt von" -#: order/models.py:321 +#: order/models.py:333 msgid "User or group responsible for this order" msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind" -#: order/models.py:332 +#: order/models.py:344 msgid "Point of contact for this order" msgstr "Ansprechpartner für diesen Auftrag" -#: order/models.py:342 +#: order/models.py:354 msgid "Company address for this order" msgstr "Firmenadresse für diesen Auftrag" -#: order/models.py:443 order/models.py:899 +#: order/models.py:464 order/models.py:927 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:451 order/models.py:923 +#: order/models.py:472 order/models.py:951 msgid "Purchase order status" msgstr "Bestellungs-Status" -#: order/models.py:466 +#: order/models.py:487 msgid "Company from which the items are being ordered" msgstr "Firma bei der die Teile bestellt werden" -#: order/models.py:477 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1703 +#: order/models.py:498 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1702 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" -#: order/models.py:478 +#: order/models.py:499 msgid "Supplier order reference code" msgstr "Zulieferer Bestellreferenz" -#: order/models.py:487 +#: order/models.py:508 msgid "received by" msgstr "Empfangen von" -#: order/models.py:493 order/models.py:2034 +#: order/models.py:514 order/models.py:2058 msgid "Issue Date" msgstr "Aufgabedatum" -#: order/models.py:494 order/models.py:2035 +#: order/models.py:515 order/models.py:2059 msgid "Date order was issued" msgstr "Datum an dem die Bestellung aufgegeben wurde" -#: order/models.py:501 order/models.py:2042 +#: order/models.py:522 order/models.py:2066 msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:545 +#: order/models.py:566 msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:739 +#: order/models.py:760 msgid "Quantity must be a positive number" msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:911 +#: order/models.py:939 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:934 order/models.py:2027 +#: order/models.py:962 order/models.py:2051 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:935 order/models.py:2028 +#: order/models.py:963 order/models.py:2052 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:939 order/models.py:1656 -#: templates/js/translated/sales_order.js:843 -#: templates/js/translated/sales_order.js:1024 +#: order/models.py:967 order/models.py:1671 +#: templates/js/translated/sales_order.js:879 +#: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:948 +#: order/models.py:976 msgid "shipped by" msgstr "Versand von" -#: order/models.py:999 -msgid "Order cannot be completed as no parts have been assigned" -msgstr "Auftrag kann nicht abgeschlossen werden, da keine Teile zugewiesen wurden" +#: order/models.py:1025 +msgid "Order is already complete" +msgstr "" -#: order/models.py:1004 +#: order/models.py:1028 +msgid "Order is already cancelled" +msgstr "" + +#: order/models.py:1032 msgid "Only an open order can be marked as complete" msgstr "Nur ein offener Auftrag kann als abgeschlossen markiert werden" -#: order/models.py:1008 templates/js/translated/sales_order.js:506 +#: order/models.py:1036 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:1013 +#: order/models.py:1041 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:1260 +#: order/models.py:1273 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:1277 +#: order/models.py:1290 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:1284 +#: order/models.py:1297 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:1296 +#: order/models.py:1309 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:1317 +#: order/models.py:1330 msgid "Line item description (optional)" msgstr "Positionsbeschreibung (optional)" -#: order/models.py:1323 +#: order/models.py:1336 msgid "Context" msgstr "Kontext" -#: order/models.py:1324 +#: order/models.py:1337 msgid "Additional context for this line" msgstr "Zusätzlicher Kontext für diese Zeile" -#: order/models.py:1334 +#: order/models.py:1347 msgid "Unit price" msgstr "Stückpreis" -#: order/models.py:1367 +#: order/models.py:1380 msgid "Supplier part must match supplier" msgstr "Lieferantenteil muss mit Lieferant übereinstimmen" -#: order/models.py:1374 +#: order/models.py:1387 msgid "deleted" msgstr "gelöscht" -#: order/models.py:1402 +#: order/models.py:1415 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:1409 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1869 templates/js/translated/part.js:1901 +#: order/models.py:1422 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1870 templates/js/translated/part.js:1902 #: templates/js/translated/purchase_order.js:1306 -#: templates/js/translated/purchase_order.js:2170 -#: templates/js/translated/return_order.js:764 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/return_order.js:763 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Empfangen" -#: order/models.py:1410 +#: order/models.py:1423 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:1418 stock/models.py:923 stock/serializers.py:400 +#: order/models.py:1431 stock/models.py:938 stock/serializers.py:556 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2311 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:1419 +#: order/models.py:1432 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:1434 +#: order/models.py:1447 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:1523 +#: order/models.py:1538 msgid "Virtual part cannot be assigned to a sales order" msgstr "Ein virtuelles Teil kann nicht einem Auftrag zugeordnet werden" -#: order/models.py:1528 +#: order/models.py:1543 msgid "Only salable parts can be assigned to a sales order" msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden" -#: order/models.py:1554 part/templates/part/part_pricing.html:107 +#: order/models.py:1569 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:1555 +#: order/models.py:1570 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:1565 +#: order/models.py:1579 order/status_codes.py:43 +#: 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:1580 msgid "Shipped quantity" msgstr "Versendete Menge" -#: order/models.py:1657 +#: order/models.py:1672 msgid "Date of shipment" msgstr "Versanddatum" -#: order/models.py:1663 templates/js/translated/sales_order.js:1036 +#: order/models.py:1678 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Lieferdatum" -#: order/models.py:1664 +#: order/models.py:1679 msgid "Date of delivery of shipment" msgstr "Versanddatum" -#: order/models.py:1672 +#: order/models.py:1687 msgid "Checked By" msgstr "Kontrolliert von" -#: order/models.py:1673 +#: order/models.py:1688 msgid "User who checked this shipment" msgstr "Benutzer, der diese Sendung kontrolliert hat" -#: order/models.py:1680 order/models.py:1893 order/serializers.py:1350 -#: order/serializers.py:1460 templates/js/translated/model_renderers.js:448 +#: order/models.py:1695 order/models.py:1908 order/serializers.py:1342 +#: order/serializers.py:1452 templates/js/translated/model_renderers.js:454 msgid "Shipment" msgstr "Sendung" -#: order/models.py:1681 +#: order/models.py:1696 msgid "Shipment number" msgstr "Sendungsnummer" -#: order/models.py:1689 +#: order/models.py:1704 msgid "Tracking Number" msgstr "Sendungsverfolgungsnummer" -#: order/models.py:1690 +#: order/models.py:1705 msgid "Shipment tracking information" msgstr "Informationen zur Sendungsverfolgung" -#: order/models.py:1697 +#: order/models.py:1712 msgid "Invoice Number" msgstr "Rechnungsnummer" -#: order/models.py:1698 +#: order/models.py:1713 msgid "Reference number for associated invoice" msgstr "Referenznummer für zugehörige Rechnung" -#: order/models.py:1718 +#: order/models.py:1733 msgid "Shipment has already been sent" msgstr "Sendung wurde bereits versandt" -#: order/models.py:1721 +#: order/models.py:1736 msgid "Shipment has no allocated stock items" msgstr "Sendung hat keine zugewiesene Lagerartikel" -#: order/models.py:1839 order/models.py:1841 +#: order/models.py:1854 order/models.py:1856 msgid "Stock item has not been assigned" msgstr "Lagerartikel wurde nicht zugewiesen" -#: order/models.py:1848 +#: order/models.py:1863 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:1851 +#: order/models.py:1866 msgid "Cannot allocate stock to a line without a part" msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen" -#: order/models.py:1854 +#: order/models.py:1869 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:1873 order/serializers.py:1227 +#: order/models.py:1888 order/serializers.py:1219 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein" -#: order/models.py:1876 +#: order/models.py:1891 msgid "Sales order does not match shipment" msgstr "Auftrag gehört nicht zu Sendung" -#: order/models.py:1877 plugin/base/barcodes/api.py:481 +#: order/models.py:1892 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "Sendung gehört nicht zu Auftrag" -#: order/models.py:1885 +#: order/models.py:1900 msgid "Line" msgstr "Position" -#: order/models.py:1894 +#: order/models.py:1909 msgid "Sales order shipment reference" msgstr "Sendungsnummer-Referenz" -#: order/models.py:1907 order/models.py:2215 -#: templates/js/translated/return_order.js:722 +#: order/models.py:1922 order/models.py:2239 +#: templates/js/translated/return_order.js:721 msgid "Item" msgstr "Position" -#: order/models.py:1908 +#: order/models.py:1923 msgid "Select stock item to allocate" msgstr "Lagerartikel für Zuordnung auswählen" -#: order/models.py:1917 +#: order/models.py:1932 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: order/models.py:1997 +#: order/models.py:2021 msgid "Return Order reference" msgstr "Rücksendungsreferenz" -#: order/models.py:2009 +#: order/models.py:2033 msgid "Company from which items are being returned" msgstr "Firma von der die Artikel zurückgeschickt werden" -#: order/models.py:2021 +#: order/models.py:2045 msgid "Return order status" msgstr "Status der Rücksendung" -#: order/models.py:2200 +#: order/models.py:2224 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:2216 +#: order/models.py:2240 msgid "Select item to return from customer" msgstr "Artikel zur Rücksendung auswählen" -#: order/models.py:2222 +#: order/models.py:2246 msgid "Received Date" msgstr "Empfangsdatum" -#: order/models.py:2223 +#: order/models.py:2247 msgid "The date this this return item was received" msgstr "Das Datum des Empfangs dieses Rücksendeartikels" -#: order/models.py:2234 templates/js/translated/return_order.js:733 +#: order/models.py:2258 templates/js/translated/return_order.js:732 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Ergebnis" -#: order/models.py:2235 +#: order/models.py:2259 msgid "Outcome for this line item" msgstr "Ergebnis für dieses Zeilenelement" -#: order/models.py:2242 +#: order/models.py:2266 msgid "Cost associated with return or repair for this line item" msgstr "Kosten für die Rückgabe oder Reparatur dieses Objektes" -#: order/serializers.py:283 +#: order/serializers.py:79 order/templates/order/po_sidebar.html:5 +#: order/templates/order/return_order_detail.html:18 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_purchase_order_report.html:22 +#: report/templates/report/inventree_return_order_report.html:19 +#: report/templates/report/inventree_sales_order_report.html:22 +msgid "Line Items" +msgstr "Positionen" + +#: order/serializers.py:83 +msgid "Completed Lines" +msgstr "Abgeschlossene Positionen" + +#: order/serializers.py:286 msgid "Order cannot be cancelled" msgstr "Bestellung kann nicht verworfen werden" -#: order/serializers.py:298 order/serializers.py:1243 +#: order/serializers.py:301 order/serializers.py:1235 msgid "Allow order to be closed with incomplete line items" msgstr "Erlaube das Schließen des Auftrags mit unvollständigen Positionen" -#: order/serializers.py:308 order/serializers.py:1253 +#: order/serializers.py:311 order/serializers.py:1245 msgid "Order has incomplete line items" msgstr "Auftrag hat unvollständige Positionen" -#: order/serializers.py:436 +#: order/serializers.py:439 msgid "Order is not open" msgstr "Der Auftrag ist nicht offen" -#: order/serializers.py:457 +#: order/serializers.py:460 msgid "Auto Pricing" msgstr "Automatische Preisgestaltung" -#: order/serializers.py:459 +#: order/serializers.py:462 msgid "Automatically calculate purchase price based on supplier part data" msgstr "Kaufpreis automatisch basierend auf Lieferantenbestandsdaten berechnen" -#: order/serializers.py:469 +#: order/serializers.py:472 msgid "Purchase price currency" msgstr "Kaufpreiswährung" -#: order/serializers.py:475 +#: order/serializers.py:478 msgid "Merge Items" msgstr "Elemente zusammenfügen" -#: order/serializers.py:477 +#: order/serializers.py:480 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:495 +#: order/serializers.py:498 msgid "Supplier part must be specified" msgstr "Zuliefererteil muss ausgewählt werden" -#: order/serializers.py:498 +#: order/serializers.py:501 msgid "Purchase order must be specified" msgstr "Bestellung muss angegeben sein" -#: order/serializers.py:506 +#: order/serializers.py:509 msgid "Supplier must match purchase order" msgstr "Lieferant muss mit der Bestellung übereinstimmen" -#: order/serializers.py:507 +#: order/serializers.py:510 msgid "Purchase order must match supplier" msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen" -#: order/serializers.py:546 order/serializers.py:1321 +#: order/serializers.py:549 order/serializers.py:1313 msgid "Line Item" msgstr "Position" -#: order/serializers.py:552 +#: order/serializers.py:555 msgid "Line item does not match purchase order" msgstr "Position stimmt nicht mit Kaufauftrag überein" -#: order/serializers.py:562 order/serializers.py:670 order/serializers.py:1676 +#: order/serializers.py:565 order/serializers.py:673 order/serializers.py:1657 msgid "Select destination location for received items" msgstr "Zielort für empfangene Teile auswählen" -#: order/serializers.py:578 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:581 templates/js/translated/purchase_order.js:1130 msgid "Enter batch code for incoming stock items" msgstr "Losnummer für eingehende Lagerartikel" -#: order/serializers.py:586 templates/js/translated/purchase_order.js:1154 +#: order/serializers.py:589 templates/js/translated/purchase_order.js:1154 msgid "Enter serial numbers for incoming stock items" msgstr "Seriennummern für eingehende Lagerartikel" -#: order/serializers.py:597 templates/js/translated/barcode.js:52 +#: order/serializers.py:600 templates/js/translated/barcode.js:52 msgid "Barcode" -msgstr "" +msgstr "Barcode" -#: order/serializers.py:598 +#: order/serializers.py:601 msgid "Scanned barcode" msgstr "Gescannter Barcode" -#: order/serializers.py:614 +#: order/serializers.py:617 msgid "Barcode is already in use" msgstr "Barcode ist bereits in Verwendung" -#: order/serializers.py:638 +#: order/serializers.py:641 msgid "An integer quantity must be provided for trackable parts" msgstr "Ganzzahl für verfolgbare Teile erforderlich" -#: order/serializers.py:686 order/serializers.py:1692 +#: order/serializers.py:689 order/serializers.py:1673 msgid "Line items must be provided" msgstr "Positionen müssen angegeben werden" -#: order/serializers.py:702 +#: order/serializers.py:705 msgid "Destination location must be specified" msgstr "Ziel-Lagerort muss angegeben werden" -#: order/serializers.py:713 +#: order/serializers.py:716 msgid "Supplied barcode values must be unique" msgstr "Barcode muss eindeutig sein" -#: order/serializers.py:1070 +#: order/serializers.py:1062 msgid "Sale price currency" msgstr "Verkaufspreis-Währung" -#: order/serializers.py:1130 +#: order/serializers.py:1122 msgid "No shipment details provided" msgstr "Keine Sendungsdetails angegeben" -#: order/serializers.py:1191 order/serializers.py:1330 +#: order/serializers.py:1183 order/serializers.py:1322 msgid "Line item is not associated with this order" msgstr "Position ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1210 +#: order/serializers.py:1202 msgid "Quantity must be positive" msgstr "Anzahl muss positiv sein" -#: order/serializers.py:1340 +#: order/serializers.py:1332 msgid "Enter serial numbers to allocate" msgstr "Seriennummern zum Zuweisen eingeben" -#: order/serializers.py:1362 order/serializers.py:1468 +#: order/serializers.py:1354 order/serializers.py:1460 msgid "Shipment has already been shipped" msgstr "Sendung wurde bereits versandt" -#: order/serializers.py:1365 order/serializers.py:1471 +#: order/serializers.py:1357 order/serializers.py:1463 msgid "Shipment is not associated with this order" msgstr "Sendung ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1412 +#: order/serializers.py:1404 msgid "No match found for the following serial numbers" msgstr "Folgende Serienummern konnten nicht gefunden werden" -#: order/serializers.py:1419 +#: order/serializers.py:1411 msgid "The following serial numbers are already allocated" msgstr "Folgende Seriennummern sind bereits zugewiesen" -#: order/serializers.py:1646 +#: order/serializers.py:1627 msgid "Return order line item" msgstr "Artikel der Bestellzeile zurücksenden" -#: order/serializers.py:1652 +#: order/serializers.py:1633 msgid "Line item does not match return order" msgstr "Artikel entspricht nicht der Rücksendeschrift" -#: order/serializers.py:1655 +#: order/serializers.py:1636 msgid "Line item has already been received" msgstr "Artikel wurde bereits erhalten" -#: order/serializers.py:1684 +#: order/serializers.py:1665 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:1762 +#: order/serializers.py:1743 msgid "Line price currency" msgstr "Verkaufspreis-Währung" +#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +msgid "Lost" +msgstr "Verloren" + +#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +msgid "Returned" +msgstr "Zurückgegeben" + +#: order/status_codes.py:40 order/status_codes.py:67 +msgid "In Progress" +msgstr "In Bearbeitung" + +#: order/status_codes.py:85 +msgid "Return" +msgstr "Zurück" + +#: order/status_codes.py:88 +msgid "Repair" +msgstr "Reparatur" + +#: order/status_codes.py:91 +msgid "Replace" +msgstr "Ersetzen" + +#: order/status_codes.py:94 +msgid "Refund" +msgstr "Rückerstattung" + +#: order/status_codes.py:97 +msgid "Reject" +msgstr "Ablehnen" + #: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "Überfällige Bestellung" @@ -5553,7 +5463,7 @@ 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:93 +#: order/templates/order/sales_order_base.html:97 msgid "Complete Order" msgstr "Auftrag fertigstellen" @@ -5563,13 +5473,13 @@ 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:106 +#: order/templates/order/sales_order_base.html:110 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:111 +#: order/templates/order/sales_order_base.html:115 msgid "Order Description" msgstr "Bestellungsbeschreibung" @@ -5578,19 +5488,19 @@ msgid "No suppplier information available" msgstr "Keine Lieferanteninformationen verfügbar" #: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:157 +#: order/templates/order/sales_order_base.html:161 msgid "Completed Line Items" msgstr "Abgeschlossene Positionen" #: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:163 -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:167 +#: order/templates/order/sales_order_base.html:177 msgid "Incomplete" msgstr "Unvollständig" #: order/templates/order/order_base.html:179 #: order/templates/order/return_order_base.html:157 -#: report/templates/report/inventree_build_order_base.html:121 +#: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Aufgegeben" @@ -5600,15 +5510,15 @@ msgstr "Gesamtsumme" #: order/templates/order/order_base.html:228 #: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/sales_order_base.html:243 msgid "Total cost could not be calculated" msgstr "Gesamtkosten konnten nicht berechnet werden" -#: order/templates/order/order_base.html:318 +#: order/templates/order/order_base.html:314 msgid "Purchase Order QR Code" msgstr "Bestellung QR-Code" -#: order/templates/order/order_base.html:330 +#: order/templates/order/order_base.html:326 msgid "Link Barcode to Purchase Order" msgstr "Barcode mit Bestellung verknüpfen" @@ -5662,11 +5572,11 @@ 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:529 -#: templates/js/translated/build.js:1626 +#: templates/js/translated/build.js:1629 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1236 -#: templates/js/translated/return_order.js:506 -#: templates/js/translated/sales_order.js:1109 +#: templates/js/translated/return_order.js:505 +#: templates/js/translated/sales_order.js:1145 #: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -5708,15 +5618,6 @@ msgstr "Bestellung ist bereits verarbeitet. Dateien können nicht hochgeladen we msgid "Step %(step)s of %(count)s" msgstr "Schritt %(step)s von %(count)s" -#: order/templates/order/po_sidebar.html:5 -#: order/templates/order/return_order_detail.html:18 -#: order/templates/order/so_sidebar.html:5 -#: report/templates/report/inventree_po_report_base.html:22 -#: report/templates/report/inventree_return_order_report_base.html:19 -#: report/templates/report/inventree_so_report_base.html:22 -msgid "Line Items" -msgstr "Positionen" - #: order/templates/order/po_sidebar.html:7 msgid "Received Stock" msgstr "Empfangene Lagerartikel" @@ -5729,7 +5630,7 @@ msgstr "Bestellungs-Positionen" #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 #: templates/js/translated/purchase_order.js:414 -#: templates/js/translated/return_order.js:459 +#: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -5778,30 +5679,30 @@ msgid "Print packing list" msgstr "Paketliste drucken" #: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:151 -#: templates/js/translated/return_order.js:309 -#: templates/js/translated/sales_order.js:797 +#: order/templates/order/sales_order_base.html:155 +#: 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:235 +#: order/templates/order/sales_order_base.html:239 #: 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:1072 -#: templates/js/translated/purchase_order.js:1753 -#: templates/js/translated/return_order.js:381 -#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/part.js:1073 +#: templates/js/translated/purchase_order.js:1752 +#: 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:263 +#: order/templates/order/return_order_base.html:259 msgid "Return Order QR Code" msgstr "QR-Code Bestellung zurückgeben" -#: order/templates/order/return_order_base.html:275 +#: order/templates/order/return_order_base.html:271 msgid "Link Barcode to Return Order" msgstr "Barcode mit Rücksendung verknüpfen" @@ -5819,25 +5720,30 @@ msgid "Ship Items" msgstr "Versandartikel" #: order/templates/order/sales_order_base.html:92 -#: templates/js/translated/sales_order.js:484 +#: order/templates/order/sales_order_base.html:93 +msgid "Mark As Shipped" +msgstr "Als verschickt markieren" + +#: order/templates/order/sales_order_base.html:96 +#: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "Auftrag abschließen" -#: order/templates/order/sales_order_base.html:131 +#: order/templates/order/sales_order_base.html:135 msgid "This Sales Order has not been fully allocated" msgstr "Dieser Auftrag ist nicht vollständig zugeordnet" -#: order/templates/order/sales_order_base.html:169 +#: order/templates/order/sales_order_base.html:173 #: 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:312 +#: order/templates/order/sales_order_base.html:321 msgid "Sales Order QR Code" msgstr "Auftrag QR-Code" -#: order/templates/order/sales_order_base.html:324 +#: order/templates/order/sales_order_base.html:333 msgid "Link Barcode to Sales Order" msgstr "Barcode mit Verkaufsauftrag verknüpfen" @@ -5881,34 +5787,34 @@ 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:39 part/admin.py:404 part/models.py:3921 part/stocktake.py:218 -#: stock/admin.py:153 +#: part/admin.py:39 part/admin.py:398 part/models.py:3944 part/stocktake.py:219 +#: stock/admin.py:152 msgid "Part ID" msgstr "Teil-ID" -#: part/admin.py:41 part/admin.py:411 part/models.py:3922 part/stocktake.py:219 -#: stock/admin.py:157 +#: part/admin.py:41 part/admin.py:405 part/models.py:3945 part/stocktake.py:220 +#: stock/admin.py:156 msgid "Part Name" msgstr "Name des Teils" -#: part/admin.py:45 part/stocktake.py:220 +#: part/admin.py:45 part/stocktake.py:221 msgid "Part Description" msgstr "Beschreibung des Teils" -#: part/admin.py:48 part/models.py:904 part/templates/part/part_base.html:269 -#: report/templates/report/inventree_slr_report.html:103 -#: templates/js/translated/part.js:1226 templates/js/translated/part.js:2341 -#: templates/js/translated/stock.js:2035 +#: part/admin.py:48 part/models.py:940 part/templates/part/part_base.html:269 +#: report/templates/report/inventree_stock_location_report.html:103 +#: templates/js/translated/part.js:1227 templates/js/translated/part.js:2341 +#: templates/js/translated/stock.js:2036 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/admin.py:50 part/models.py:913 part/templates/part/part_base.html:277 -#: report/models.py:195 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:949 part/templates/part/part_base.html:277 +#: report/models.py:162 templates/js/translated/part.js:1232 #: templates/js/translated/part.js:2347 msgid "Revision" msgstr "Version" -#: part/admin.py:53 part/admin.py:317 part/models.py:886 +#: part/admin.py:53 part/admin.py:319 part/models.py:922 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Schlüsselwörter" @@ -5917,15 +5823,15 @@ msgstr "Schlüsselwörter" msgid "Part Image" msgstr "Artikelbild" -#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 +#: part/admin.py:63 part/admin.py:302 part/stocktake.py:222 msgid "Category ID" msgstr "Kategorie-ID" -#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 +#: part/admin.py:67 part/admin.py:304 part/stocktake.py:223 msgid "Category Name" msgstr "Kategoriename" -#: part/admin.py:71 part/admin.py:314 +#: part/admin.py:71 part/admin.py:316 msgid "Default Location ID" msgstr "Standard-Standortnummer" @@ -5933,11 +5839,11 @@ msgstr "Standard-Standortnummer" msgid "Default Supplier ID" msgstr "Standard-Lieferantennummer" -#: part/admin.py:81 part/models.py:872 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:908 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante von" -#: part/admin.py:84 part/models.py:1000 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1036 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimaler Bestand" @@ -5945,36 +5851,36 @@ msgstr "Minimaler Bestand" msgid "Used In" msgstr "Benutzt in" -#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:231 -#: templates/js/translated/part.js:714 templates/js/translated/part.js:2152 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:235 +#: templates/js/translated/part.js:715 templates/js/translated/part.js:2153 msgid "Building" msgstr "Im Bau" -#: part/admin.py:155 part/models.py:3080 part/models.py:3094 -#: templates/js/translated/part.js:969 +#: part/admin.py:155 part/models.py:3088 part/models.py:3102 +#: templates/js/translated/part.js:970 msgid "Minimum Cost" msgstr "Minimale Kosten" -#: part/admin.py:158 part/models.py:3087 part/models.py:3101 -#: templates/js/translated/part.js:979 +#: part/admin.py:158 part/models.py:3095 part/models.py:3109 +#: templates/js/translated/part.js:980 msgid "Maximum Cost" msgstr "Maximale Kosten" -#: part/admin.py:306 part/admin.py:393 stock/admin.py:58 stock/admin.py:211 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 msgid "Parent ID" msgstr "Eltern ID" -#: part/admin.py:310 part/admin.py:400 stock/admin.py:62 +#: part/admin.py:312 part/admin.py:394 stock/admin.py:61 msgid "Parent Name" msgstr "Name des übergeordneten Teils" -#: part/admin.py:318 part/templates/part/category.html:88 +#: part/admin.py:320 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Pfad zur Kategorie" -#: part/admin.py:323 part/models.py:391 part/serializers.py:117 -#: part/serializers.py:272 part/serializers.py:391 +#: part/admin.py:325 part/models.py:396 part/serializers.py:116 +#: part/serializers.py:259 part/serializers.py:378 #: 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/templates/part/category_sidebar.html:9 @@ -5985,125 +5891,129 @@ msgstr "Pfad zur Kategorie" msgid "Parts" msgstr "Teile" -#: part/admin.py:384 +#: part/admin.py:378 msgid "BOM Level" msgstr "Stücklistenebene" -#: part/admin.py:387 +#: part/admin.py:381 msgid "BOM Item ID" msgstr "Stücklisten-Position ID" -#: part/admin.py:397 +#: part/admin.py:391 msgid "Parent IPN" msgstr "Übergeordnete IPN" -#: part/admin.py:408 part/models.py:3923 +#: part/admin.py:402 part/models.py:3946 msgid "Part IPN" msgstr "Teil IPN" -#: part/admin.py:421 part/serializers.py:1261 +#: part/admin.py:415 part/serializers.py:1266 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Niedrigster Preis" -#: part/admin.py:426 part/serializers.py:1276 +#: part/admin.py:420 part/serializers.py:1281 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Höchster Preis" -#: part/api.py:119 +#: part/api.py:104 msgid "Starred" msgstr "Markiert" -#: part/api.py:121 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "Nach markierten Kategorien filtern" -#: part/api.py:138 stock/api.py:284 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "Ebenen" -#: part/api.py:138 +#: part/api.py:123 msgid "Filter by category depth" msgstr "Filter nach Kategorietiefe" -#: part/api.py:156 stock/api.py:302 +#: part/api.py:141 stock/api.py:330 msgid "Cascade" msgstr "Mehrstufig" -#: part/api.py:158 +#: part/api.py:143 msgid "Include sub-categories in filtered results" msgstr "Unterkategorien in gefilterte Ergebnisse einbeziehen" -#: part/api.py:178 +#: part/api.py:163 templates/js/translated/part.js:308 msgid "Parent" msgstr "Übergeordnetes" -#: part/api.py:180 +#: part/api.py:165 msgid "Filter by parent category" msgstr "Nach übergeordneter Kategorie filtern" -#: part/api.py:213 +#: part/api.py:198 msgid "Exclude Tree" msgstr "Baum ausschließen" -#: part/api.py:215 +#: part/api.py:200 msgid "Exclude sub-categories under the specified category" msgstr "Unterkategorien in der angegebenen Kategorie ausschließen" -#: part/api.py:461 +#: part/api.py:433 msgid "Has Results" msgstr "Ergebnisse" -#: part/api.py:628 +#: part/api.py:600 msgid "Incoming Purchase Order" msgstr "Eingehende Bestellung" -#: part/api.py:646 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "Ausgehender Auftrag" -#: part/api.py:662 +#: part/api.py:634 msgid "Stock produced by Build Order" msgstr "Lagerartikel produziert von Bauauftrag" -#: part/api.py:746 +#: part/api.py:718 msgid "Stock required for Build Order" msgstr "Lagerartikel für Bauauftrag benötigt" -#: part/api.py:893 +#: part/api.py:865 msgid "Valid" msgstr "Gültig" -#: part/api.py:894 +#: part/api.py:866 msgid "Validate entire Bill of Materials" msgstr "Gesamte Stückliste validieren" -#: part/api.py:900 +#: part/api.py:872 msgid "This option must be selected" msgstr "Diese Option muss ausgewählt werden" -#: part/api.py:1561 part/models.py:896 part/models.py:3386 part/models.py:3866 -#: part/serializers.py:406 part/serializers.py:1117 -#: part/templates/part/part_base.html:260 stock/api.py:745 +#: part/api.py:1089 +msgid "BOM Valid" +msgstr "" + +#: part/api.py:1492 part/models.py:932 part/models.py:3374 part/models.py:3889 +#: part/serializers.py:393 part/serializers.py:1122 +#: part/templates/part/part_base.html:260 stock/api.py:775 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2377 msgid "Category" msgstr "Kategorie" -#: part/api.py:1849 +#: part/api.py:1780 msgid "Uses" msgstr "Verwendet" -#: part/bom.py:170 part/models.py:101 part/models.py:939 +#: part/bom.py:170 part/models.py:104 part/models.py:975 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Standard-Lagerort" -#: part/bom.py:171 part/serializers.py:822 +#: part/bom.py:171 part/serializers.py:825 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Gesamtbestand" @@ -6112,1040 +6022,1058 @@ msgstr "Gesamtbestand" msgid "Input quantity for price calculation" msgstr "Menge für die Preisberechnung" -#: part/models.py:82 part/models.py:3867 part/templates/part/category.html:16 +#: part/models.py:85 part/models.py:3890 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" -#: part/models.py:83 part/templates/part/category.html:136 +#: part/models.py:86 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Teil-Kategorien" -#: part/models.py:102 +#: part/models.py:105 msgid "Default location for parts in this category" msgstr "Standard-Lagerort für Teile dieser Kategorie" -#: part/models.py:107 stock/models.py:165 templates/js/translated/part.js:2810 +#: part/models.py:110 stock/models.py:174 templates/js/translated/part.js:2810 #: templates/js/translated/stock.js:2772 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strukturell" -#: part/models.py:109 +#: part/models.py:112 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:118 +#: part/models.py:121 msgid "Default keywords" msgstr "Standard Stichwörter" -#: part/models.py:119 +#: part/models.py:122 msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:125 stock/models.py:89 stock/models.py:148 +#: part/models.py:128 stock/models.py:86 stock/models.py:157 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Symbol" -#: part/models.py:126 stock/models.py:149 +#: part/models.py:129 stock/models.py:158 msgid "Icon (optional)" msgstr "Symbol (optional)" -#: part/models.py:148 +#: part/models.py:151 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:484 +#: part/models.py:485 +msgid "Cannot delete this part as it is still active" +msgstr "" + +#: part/models.py:490 +msgid "Cannot delete this part as it is used in an assembly" +msgstr "" + +#: part/models.py:528 msgid "Invalid choice for parent part" msgstr "Ungültige Auswahl für übergeordnetes Teil" -#: part/models.py:532 part/models.py:539 +#: part/models.py:576 part/models.py:583 #, 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:551 +#: part/models.py:595 #, 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:616 +#: part/models.py:658 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN muss mit Regex-Muster {pattern} übereinstimmen" -#: part/models.py:696 +#: part/models.py:736 msgid "Stock item with this serial number already exists" msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits" -#: part/models.py:801 +#: part/models.py:837 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:811 +#: part/models.py:847 msgid "Part with this Name, IPN and Revision already exists." msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits." -#: part/models.py:826 +#: part/models.py:862 msgid "Parts cannot be assigned to structural part categories!" msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!" -#: part/models.py:855 part/models.py:3922 +#: part/models.py:891 part/models.py:3945 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:860 +#: part/models.py:896 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:861 +#: part/models.py:897 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:871 +#: part/models.py:907 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:879 +#: part/models.py:915 msgid "Part description (optional)" msgstr "Artikelbeschreibung (optional)" -#: part/models.py:887 +#: part/models.py:923 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:897 +#: part/models.py:933 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:905 +#: part/models.py:941 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:912 +#: part/models.py:948 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:937 +#: part/models.py:973 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:983 part/templates/part/part_base.html:376 +#: part/models.py:1019 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:984 +#: part/models.py:1020 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:991 +#: part/models.py:1027 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:992 +#: part/models.py:1028 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:1001 +#: part/models.py:1037 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:1010 +#: part/models.py:1046 msgid "Units of measure for this part" msgstr "Maßeinheit für diesen Teil" -#: part/models.py:1017 +#: part/models.py:1053 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:1023 +#: part/models.py:1059 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:1029 +#: part/models.py:1065 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:1035 +#: part/models.py:1071 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:1041 +#: part/models.py:1077 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:1045 +#: part/models.py:1081 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:1051 +#: part/models.py:1087 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:1057 +#: part/models.py:1093 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:1058 +#: part/models.py:1094 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:1066 +#: part/models.py:1102 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:1071 +#: part/models.py:1107 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:1087 +#: part/models.py:1123 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1097 +#: part/models.py:1133 msgid "Owner responsible for this part" msgstr "Verantwortlicher Besitzer für dieses Teil" -#: part/models.py:1102 part/templates/part/part_base.html:339 +#: part/models.py:1138 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2471 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: part/models.py:1975 +#: part/models.py:2011 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2994 +#: part/models.py:3002 msgid "Currency used to cache pricing calculations" msgstr "Währung für die Berechnung der Preise im Cache" -#: part/models.py:3010 +#: part/models.py:3018 msgid "Minimum BOM Cost" msgstr "Minimale Stücklisten Kosten" -#: part/models.py:3011 +#: part/models.py:3019 msgid "Minimum cost of component parts" msgstr "Minimale Kosten für Teile" -#: part/models.py:3017 +#: part/models.py:3025 msgid "Maximum BOM Cost" msgstr "Maximale Stücklisten Kosten" -#: part/models.py:3018 +#: part/models.py:3026 msgid "Maximum cost of component parts" msgstr "Maximale Kosten für Teile" -#: part/models.py:3024 +#: part/models.py:3032 msgid "Minimum Purchase Cost" msgstr "Minimale Einkaufskosten" -#: part/models.py:3025 +#: part/models.py:3033 msgid "Minimum historical purchase cost" msgstr "Minimale historische Kaufkosten" -#: part/models.py:3031 +#: part/models.py:3039 msgid "Maximum Purchase Cost" msgstr "Maximale Einkaufskosten" -#: part/models.py:3032 +#: part/models.py:3040 msgid "Maximum historical purchase cost" msgstr "Maximale historische Einkaufskosten" -#: part/models.py:3038 +#: part/models.py:3046 msgid "Minimum Internal Price" msgstr "Minimaler interner Preis" -#: part/models.py:3039 +#: part/models.py:3047 msgid "Minimum cost based on internal price breaks" msgstr "Minimale Kosten basierend auf den internen Staffelpreisen" -#: part/models.py:3045 +#: part/models.py:3053 msgid "Maximum Internal Price" msgstr "Maximaler interner Preis" -#: part/models.py:3046 +#: part/models.py:3054 msgid "Maximum cost based on internal price breaks" msgstr "Maximale Kosten basierend auf internen Preisstaffeln" -#: part/models.py:3052 +#: part/models.py:3060 msgid "Minimum Supplier Price" msgstr "Minimaler Lieferantenpreis" -#: part/models.py:3053 +#: part/models.py:3061 msgid "Minimum price of part from external suppliers" msgstr "Mindestpreis für Teil von externen Lieferanten" -#: part/models.py:3059 +#: part/models.py:3067 msgid "Maximum Supplier Price" msgstr "Maximaler Lieferantenpreis" -#: part/models.py:3060 +#: part/models.py:3068 msgid "Maximum price of part from external suppliers" msgstr "Maximaler Preis für Teil von externen Lieferanten" -#: part/models.py:3066 +#: part/models.py:3074 msgid "Minimum Variant Cost" msgstr "Minimale Variantenkosten" -#: part/models.py:3067 +#: part/models.py:3075 msgid "Calculated minimum cost of variant parts" msgstr "Berechnete minimale Kosten für Variantenteile" -#: part/models.py:3073 +#: part/models.py:3081 msgid "Maximum Variant Cost" msgstr "Maximale Variantenkosten" -#: part/models.py:3074 +#: part/models.py:3082 msgid "Calculated maximum cost of variant parts" msgstr "Berechnete maximale Kosten für Variantenteile" -#: part/models.py:3081 +#: part/models.py:3089 msgid "Override minimum cost" msgstr "Mindestkosten überschreiben" -#: part/models.py:3088 +#: part/models.py:3096 msgid "Override maximum cost" msgstr "Maximale Kosten überschreiben" -#: part/models.py:3095 +#: part/models.py:3103 msgid "Calculated overall minimum cost" msgstr "Berechnete Mindestkosten" -#: part/models.py:3102 +#: part/models.py:3110 msgid "Calculated overall maximum cost" msgstr "Berechnete Maximalkosten" -#: part/models.py:3108 +#: part/models.py:3116 msgid "Minimum Sale Price" msgstr "Mindestverkaufspreis" -#: part/models.py:3109 +#: part/models.py:3117 msgid "Minimum sale price based on price breaks" msgstr "Mindestverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3115 +#: part/models.py:3123 msgid "Maximum Sale Price" msgstr "Maximaler Verkaufspreis" -#: part/models.py:3116 +#: part/models.py:3124 msgid "Maximum sale price based on price breaks" msgstr "Maximalverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3122 +#: part/models.py:3130 msgid "Minimum Sale Cost" msgstr "Mindestverkaufskosten" -#: part/models.py:3123 +#: part/models.py:3131 msgid "Minimum historical sale price" msgstr "Minimaler historischer Verkaufspreis" -#: part/models.py:3129 +#: part/models.py:3137 msgid "Maximum Sale Cost" msgstr "Maximale Verkaufskosten" -#: part/models.py:3130 +#: part/models.py:3138 msgid "Maximum historical sale price" msgstr "Maximaler historischer Verkaufspreis" -#: part/models.py:3149 +#: part/models.py:3157 msgid "Part for stocktake" msgstr "Teil für die Inventur" -#: part/models.py:3154 +#: part/models.py:3162 msgid "Item Count" msgstr "Stückzahl" -#: part/models.py:3155 +#: part/models.py:3163 msgid "Number of individual stock entries at time of stocktake" msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur" -#: part/models.py:3163 +#: part/models.py:3171 msgid "Total available stock at time of stocktake" msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" -#: part/models.py:3167 part/models.py:3250 +#: part/models.py:3175 part/models.py:3258 #: part/templates/part/part_scheduling.html:13 -#: report/templates/report/inventree_test_report_base.html:106 +#: 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:1085 templates/js/translated/pricing.js:826 +#: templates/js/translated/part.js:1086 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1732 +#: templates/js/translated/purchase_order.js:1731 #: templates/js/translated/stock.js:2821 msgid "Date" msgstr "Datum" -#: part/models.py:3168 +#: part/models.py:3176 msgid "Date stocktake was performed" msgstr "Datum der Inventur" -#: part/models.py:3176 +#: part/models.py:3184 msgid "Additional notes" msgstr "Zusätzliche Notizen" -#: part/models.py:3186 +#: part/models.py:3194 msgid "User who performed this stocktake" msgstr "Benutzer, der diese Inventur durchgeführt hat" -#: part/models.py:3192 +#: part/models.py:3200 msgid "Minimum Stock Cost" msgstr "Mindestbestandswert" -#: part/models.py:3193 +#: part/models.py:3201 msgid "Estimated minimum cost of stock on hand" msgstr "Geschätzter Mindestwert des vorhandenen Bestands" -#: part/models.py:3199 +#: part/models.py:3207 msgid "Maximum Stock Cost" msgstr "Maximaler Bestandswert" -#: part/models.py:3200 +#: part/models.py:3208 msgid "Estimated maximum cost of stock on hand" msgstr "Geschätzter Maximalwert des vorhandenen Bestands" -#: part/models.py:3256 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3264 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "Bericht" -#: part/models.py:3257 +#: part/models.py:3265 msgid "Stocktake report file (generated internally)" msgstr "Inventur-Berichtsdatei (intern generiert)" -#: part/models.py:3262 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3270 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "Anzahl der Teile" -#: part/models.py:3263 +#: part/models.py:3271 msgid "Number of parts covered by stocktake" msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden" -#: part/models.py:3273 +#: part/models.py:3281 msgid "User who requested this stocktake report" msgstr "Benutzer, der diesen Inventurbericht angefordert hat" -#: part/models.py:3435 +#: part/models.py:3423 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:3446 +#: part/models.py:3444 part/models.py:3608 +msgid "Choices must be unique" +msgstr "Auswahl muss einzigartig sein" + +#: part/models.py:3455 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:3457 +#: part/models.py:3466 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:3474 templates/js/translated/part.js:2879 +#: part/models.py:3483 templates/js/translated/part.js:2880 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:3475 +#: part/models.py:3484 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:3481 +#: part/models.py:3490 msgid "Test Key" msgstr "Testschlüssel" -#: part/models.py:3482 +#: part/models.py:3491 msgid "Simplified key for the test" msgstr "Vereinfachter Schlüssel zum Test" -#: part/models.py:3489 +#: part/models.py:3498 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:3490 +#: part/models.py:3499 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:3494 +#: part/models.py:3503 report/models.py:209 +#: templates/js/translated/part.js:2901 +#: templates/js/translated/table_filters.js:481 +msgid "Enabled" +msgstr "Aktiviert" + +#: part/models.py:3503 msgid "Is this test enabled?" msgstr "Ist dieser Test aktiviert?" -#: part/models.py:3499 templates/js/translated/part.js:2908 +#: part/models.py:3508 templates/js/translated/part.js:2909 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Benötigt" -#: part/models.py:3500 +#: part/models.py:3509 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:3505 templates/js/translated/part.js:2916 +#: part/models.py:3514 templates/js/translated/part.js:2917 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:3506 +#: part/models.py:3515 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:3511 templates/js/translated/part.js:2923 +#: part/models.py:3520 templates/js/translated/part.js:2924 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:3513 +#: part/models.py:3522 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:3560 -msgid "Checkbox parameters cannot have units" -msgstr "Checkbox-Parameter können keine Einheiten haben" - -#: part/models.py:3565 -msgid "Checkbox parameters cannot have choices" -msgstr "Checkbox-Parameter können keine Auswahl haben" - -#: part/models.py:3585 -msgid "Choices must be unique" -msgstr "Auswahl muss einzigartig sein" - -#: part/models.py:3602 -msgid "Parameter template name must be unique" -msgstr "Vorlagen-Name des Parameters muss eindeutig sein" - -#: part/models.py:3617 -msgid "Parameter Name" -msgstr "Name des Parameters" - -#: part/models.py:3624 -msgid "Physical units for this parameter" -msgstr "Physikalische Einheiten für diesen Parameter" - -#: part/models.py:3632 -msgid "Parameter description" -msgstr "Parameter-Beschreibung" - -#: part/models.py:3638 templates/js/translated/part.js:1627 -#: templates/js/translated/table_filters.js:825 -msgid "Checkbox" -msgstr "" - -#: part/models.py:3639 -msgid "Is this parameter a checkbox?" -msgstr "Ist dieser Parameter eine Checkbox?" - -#: part/models.py:3644 templates/js/translated/part.js:1636 +#: part/models.py:3528 part/models.py:3667 templates/js/translated/part.js:1637 msgid "Choices" msgstr "Auswahlmöglichkeiten" -#: part/models.py:3645 +#: part/models.py:3529 +msgid "Valid choices for this test (comma-separated)" +msgstr "" + +#: part/models.py:3583 +msgid "Checkbox parameters cannot have units" +msgstr "Checkbox-Parameter können keine Einheiten haben" + +#: part/models.py:3588 +msgid "Checkbox parameters cannot have choices" +msgstr "Checkbox-Parameter können keine Auswahl haben" + +#: part/models.py:3625 +msgid "Parameter template name must be unique" +msgstr "Vorlagen-Name des Parameters muss eindeutig sein" + +#: part/models.py:3640 +msgid "Parameter Name" +msgstr "Name des Parameters" + +#: part/models.py:3647 +msgid "Physical units for this parameter" +msgstr "Physikalische Einheiten für diesen Parameter" + +#: part/models.py:3655 +msgid "Parameter description" +msgstr "Parameter-Beschreibung" + +#: part/models.py:3661 templates/js/translated/part.js:1628 +#: templates/js/translated/table_filters.js:825 +msgid "Checkbox" +msgstr "Checkbox" + +#: part/models.py:3662 +msgid "Is this parameter a checkbox?" +msgstr "Ist dieser Parameter eine Checkbox?" + +#: part/models.py:3668 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)" -#: part/models.py:3722 +#: part/models.py:3745 msgid "Invalid choice for parameter value" msgstr "Ungültige Auswahl für Parameterwert" -#: part/models.py:3765 +#: part/models.py:3788 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:3773 part/models.py:3874 part/models.py:3875 +#: part/models.py:3796 part/models.py:3897 part/models.py:3898 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:3778 +#: part/models.py:3801 msgid "Data" msgstr "Wert" -#: part/models.py:3779 +#: part/models.py:3802 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:3881 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3904 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:3882 +#: part/models.py:3905 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:3920 +#: part/models.py:3943 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:3921 +#: part/models.py:3944 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:3923 +#: part/models.py:3946 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:3924 +#: part/models.py:3947 msgid "Level" msgstr "Stufe" -#: part/models.py:3924 +#: part/models.py:3947 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:4014 +#: part/models.py:4037 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:4024 +#: part/models.py:4047 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:4025 +#: part/models.py:4048 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:4036 +#: part/models.py:4059 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:4042 +#: part/models.py:4065 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:4048 +#: part/models.py:4071 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:4055 part/templates/part/upload_bom.html:55 +#: part/models.py:4078 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:4056 +#: part/models.py:4079 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:4063 +#: part/models.py:4086 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:4071 +#: part/models.py:4094 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:4077 +#: part/models.py:4100 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:4078 +#: part/models.py:4101 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:4083 templates/js/translated/table_filters.js:174 +#: part/models.py:4106 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "überprüft" -#: part/models.py:4084 +#: part/models.py:4107 msgid "This BOM item has been validated" msgstr "Diese Stücklistenposition wurde validiert" -#: part/models.py:4089 part/templates/part/upload_bom.html:57 +#: part/models.py:4112 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:4090 +#: part/models.py:4113 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:4095 part/templates/part/upload_bom.html:56 +#: part/models.py:4118 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:4096 +#: part/models.py:4119 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:4181 stock/models.py:647 +#: part/models.py:4204 stock/models.py:662 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:4191 part/models.py:4193 +#: part/models.py:4214 part/models.py:4216 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:4333 +#: part/models.py:4354 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:4354 +#: part/models.py:4375 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:4367 +#: part/models.py:4388 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:4375 +#: part/models.py:4396 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:4391 +#: part/models.py:4412 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:4399 +#: part/models.py:4420 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:4400 +#: part/models.py:4421 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:4419 +#: part/models.py:4440 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:4424 +#: part/models.py:4445 msgid "Duplicate relationship already exists" msgstr "Doppelte Beziehung existiert bereits" -#: part/serializers.py:119 part/serializers.py:141 +#: part/serializers.py:118 part/serializers.py:140 #: part/templates/part/category.html:122 part/templates/part/category.html:207 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Unter-Kategorien" -#: part/serializers.py:185 +#: part/serializers.py:172 msgid "Results" msgstr "Ergebnisse" -#: part/serializers.py:186 +#: part/serializers.py:173 msgid "Number of results recorded against this template" msgstr "Anzahl der Ergebnisse, die in dieser Vorlage aufgezeichnet wurden" -#: part/serializers.py:210 part/serializers.py:228 stock/serializers.py:406 +#: part/serializers.py:197 part/serializers.py:215 stock/serializers.py:562 msgid "Purchase currency of this stock item" msgstr "Kaufwährung dieses Lagerartikels" -#: part/serializers.py:273 +#: part/serializers.py:260 msgid "Number of parts using this template" msgstr "Anzahl der Teile, die diese Vorlage verwenden" -#: part/serializers.py:397 +#: part/serializers.py:384 msgid "No parts selected" msgstr "Keine Teile ausgewählt" -#: part/serializers.py:407 +#: part/serializers.py:394 msgid "Select category" msgstr "Kategorie auswählen" -#: part/serializers.py:437 +#: part/serializers.py:429 msgid "Original Part" msgstr "Originalteil" -#: part/serializers.py:438 +#: part/serializers.py:430 msgid "Select original part to duplicate" msgstr "Originalteil zum Duplizieren auswählen" -#: part/serializers.py:443 +#: part/serializers.py:435 msgid "Copy Image" msgstr "Bild kopieren" -#: part/serializers.py:444 +#: part/serializers.py:436 msgid "Copy image from original part" msgstr "Bild vom Originalteil kopieren" -#: part/serializers.py:450 part/templates/part/detail.html:277 +#: part/serializers.py:442 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/serializers.py:451 +#: part/serializers.py:443 msgid "Copy bill of materials from original part" msgstr "Stückliste vom Originalteil kopieren" -#: part/serializers.py:457 +#: part/serializers.py:449 msgid "Copy Parameters" msgstr "Parameter kopieren" -#: part/serializers.py:458 +#: part/serializers.py:450 msgid "Copy parameter data from original part" msgstr "Parameterdaten vom Originalteil kopieren" -#: part/serializers.py:464 +#: part/serializers.py:456 msgid "Copy Notes" msgstr "Anmerkungen kopieren" -#: part/serializers.py:465 +#: part/serializers.py:457 msgid "Copy notes from original part" msgstr "Notizen aus Originalteil kopieren" -#: part/serializers.py:478 +#: part/serializers.py:475 msgid "Initial Stock Quantity" msgstr "Start-Bestandsmenge" -#: part/serializers.py:480 +#: part/serializers.py:477 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:487 +#: part/serializers.py:484 msgid "Initial Stock Location" msgstr "Initialer Lagerort" -#: part/serializers.py:488 +#: part/serializers.py:485 msgid "Specify initial stock location for this Part" msgstr "Lagerstandort für dieses Teil angeben" -#: part/serializers.py:500 +#: part/serializers.py:502 msgid "Select supplier (or leave blank to skip)" msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:516 +#: part/serializers.py:518 msgid "Select manufacturer (or leave blank to skip)" msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:526 +#: part/serializers.py:528 msgid "Manufacturer part number" msgstr "Hersteller-Teilenummer" -#: part/serializers.py:533 +#: part/serializers.py:535 msgid "Selected company is not a valid supplier" msgstr "Ausgewählte Firma ist kein gültiger Lieferant" -#: part/serializers.py:542 +#: part/serializers.py:544 msgid "Selected company is not a valid manufacturer" msgstr "Ausgewählte Firma ist kein gültiger Hersteller" -#: part/serializers.py:553 +#: part/serializers.py:555 msgid "Manufacturer part matching this MPN already exists" msgstr "Herstellerteil mit dieser MPN existiert bereits" -#: part/serializers.py:560 +#: part/serializers.py:562 msgid "Supplier part matching this SKU already exists" msgstr "Lieferantenteil mit dieser SKU existiert bereits" -#: part/serializers.py:823 +#: part/serializers.py:826 msgid "External Stock" msgstr "Externes Lager" -#: part/serializers.py:825 +#: part/serializers.py:828 msgid "Unallocated Stock" msgstr "Nicht zugewiesenes Lager" -#: part/serializers.py:828 +#: part/serializers.py:831 msgid "Variant Stock" msgstr "Alternatives Lager" -#: part/serializers.py:856 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:471 +#: part/serializers.py:861 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:472 msgid "Duplicate Part" msgstr "Teil duplizieren" -#: part/serializers.py:857 +#: part/serializers.py:862 msgid "Copy initial data from another Part" msgstr "Initiale Daten von anderem Teil kopieren" -#: part/serializers.py:863 templates/js/translated/part.js:102 +#: part/serializers.py:868 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "Initialer Lagerbestand" -#: part/serializers.py:864 +#: part/serializers.py:869 msgid "Create Part with initial stock quantity" msgstr "Erstelle Teil mit Ausgangsbestand" -#: part/serializers.py:870 +#: part/serializers.py:875 msgid "Supplier Information" msgstr "Lieferanteninformationen" -#: part/serializers.py:871 +#: part/serializers.py:876 msgid "Add initial supplier information for this part" msgstr "Lieferanteninformationen zu diesem Teil hinzufügen" -#: part/serializers.py:879 +#: part/serializers.py:884 msgid "Copy Category Parameters" msgstr "Kategorieparameter kopieren" -#: part/serializers.py:880 +#: part/serializers.py:885 msgid "Copy parameter templates from selected part category" msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren" -#: part/serializers.py:885 +#: part/serializers.py:890 msgid "Existing Image" msgstr "Vorhandenes Bild" -#: part/serializers.py:886 +#: part/serializers.py:891 msgid "Filename of an existing part image" msgstr "Dateiname eines vorhandenen Teilbildes" -#: part/serializers.py:903 +#: part/serializers.py:908 msgid "Image file does not exist" msgstr "Bilddatei existiert nicht" -#: part/serializers.py:1109 +#: part/serializers.py:1114 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:1119 +#: part/serializers.py:1124 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:1129 +#: part/serializers.py:1134 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:1135 +#: part/serializers.py:1140 msgid "Exclude External Stock" msgstr "Externen Bestand ausschließen" -#: part/serializers.py:1136 +#: part/serializers.py:1141 msgid "Exclude stock items in external locations" msgstr "Lagerartikel an externen Orten ausschließen" -#: part/serializers.py:1141 +#: part/serializers.py:1146 msgid "Generate Report" msgstr "Bericht generieren" -#: part/serializers.py:1142 +#: part/serializers.py:1147 msgid "Generate report file containing calculated stocktake data" msgstr "Erstelle Berichtsdatei mit berechneten Inventurdaten" -#: part/serializers.py:1147 +#: part/serializers.py:1152 msgid "Update Parts" msgstr "Teile aktualisieren" -#: part/serializers.py:1148 +#: part/serializers.py:1153 msgid "Update specified parts with calculated stocktake data" msgstr "Angegebene Teile mit berechneten Inventurdaten aktualisieren" -#: part/serializers.py:1156 +#: part/serializers.py:1161 msgid "Stocktake functionality is not enabled" msgstr "Inventur-Funktionalität ist nicht aktiviert" -#: part/serializers.py:1262 +#: part/serializers.py:1267 msgid "Override calculated value for minimum price" msgstr "Berechneten Wert für Mindestpreis überschreiben" -#: part/serializers.py:1269 +#: part/serializers.py:1274 msgid "Minimum price currency" msgstr "Mindestpreis Währung" -#: part/serializers.py:1277 +#: part/serializers.py:1282 msgid "Override calculated value for maximum price" msgstr "Berechneten Wert für maximalen Preis überschreiben" -#: part/serializers.py:1284 +#: part/serializers.py:1289 msgid "Maximum price currency" msgstr "Maximalpreis Währung" -#: part/serializers.py:1313 +#: part/serializers.py:1318 msgid "Update" msgstr "Aktualisieren" -#: part/serializers.py:1314 +#: part/serializers.py:1319 msgid "Update pricing for this part" msgstr "Preis für dieses Teil aktualisieren" -#: part/serializers.py:1337 +#: part/serializers.py:1342 #, 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:1344 +#: part/serializers.py:1349 msgid "Minimum price must not be greater than maximum price" msgstr "Mindestpreis darf nicht größer als der Maximalpreis sein" -#: part/serializers.py:1347 +#: part/serializers.py:1352 msgid "Maximum price must not be less than minimum price" msgstr "Der Maximalpreis darf nicht kleiner als der Mindestpreis sein" -#: part/serializers.py:1714 +#: part/serializers.py:1719 msgid "Select part to copy BOM from" msgstr "Teil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:1722 +#: part/serializers.py:1727 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:1723 +#: part/serializers.py:1728 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:1728 +#: part/serializers.py:1733 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:1729 +#: part/serializers.py:1734 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:1734 +#: part/serializers.py:1739 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:1735 +#: part/serializers.py:1740 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:1740 +#: part/serializers.py:1745 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:1741 +#: part/serializers.py:1746 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" -#: part/serializers.py:1775 +#: part/serializers.py:1780 msgid "Clear Existing BOM" msgstr "Bestehende Stückliste löschen" -#: part/serializers.py:1776 +#: part/serializers.py:1781 msgid "Delete existing BOM items before uploading" msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" -#: part/serializers.py:1806 +#: part/serializers.py:1811 msgid "No part column specified" msgstr "Keine Teilspalte angegeben" -#: part/serializers.py:1850 +#: part/serializers.py:1855 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:1853 +#: part/serializers.py:1858 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:1856 +#: part/serializers.py:1861 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:1865 +#: part/serializers.py:1870 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:1873 +#: part/serializers.py:1878 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:1894 +#: part/serializers.py:1899 msgid "At least one BOM item is required" msgstr "Mindestens eine Stückliste-Position ist erforderlich" -#: part/stocktake.py:224 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 -#: templates/js/translated/purchase_order.js:2085 +#: part/stocktake.py:225 templates/js/translated/part.js:1067 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 +#: templates/js/translated/purchase_order.js:2084 msgid "Total Quantity" msgstr "Gesamtstückzahl" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Min" msgstr "Gesamt-Bestandswert min" -#: part/stocktake.py:226 +#: part/stocktake.py:227 msgid "Total Cost Max" msgstr "Gesamt-Bestandswert max" -#: part/stocktake.py:284 +#: part/stocktake.py:285 msgid "Stocktake Report Available" msgstr "Inventurbericht verfügbar" -#: part/stocktake.py:285 +#: part/stocktake.py:286 msgid "A new stocktake report is available for download" msgstr "Ein neuer Inventurbericht steht zum Download zur Verfügung" @@ -7279,9 +7207,9 @@ msgid "Add stocktake information" msgstr "Inventurinformationen hinzufügen" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:251 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2215 users/models.py:204 +#: templates/js/translated/stock.js:2216 users/models.py:204 msgid "Stocktake" msgstr "Inventur" @@ -7379,15 +7307,15 @@ msgstr "Zulieferer" msgid "Part Manufacturers" msgstr "Teil-Hersteller" -#: part/templates/part/detail.html:659 +#: part/templates/part/detail.html:657 msgid "Related Part" msgstr "Verknüpftes Teil" -#: part/templates/part/detail.html:667 +#: part/templates/part/detail.html:665 msgid "Add Related Part" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:752 +#: part/templates/part/detail.html:750 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" @@ -7424,7 +7352,7 @@ msgstr "Teile-Importvorlage herunterladen" #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 #: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 msgid "Format" -msgstr "" +msgstr "Format" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 @@ -7446,7 +7374,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 +#: stock/templates/stock/location.html:74 templates/js/translated/label.js:143 msgid "Print Label" msgstr "Label drucken" @@ -7517,7 +7445,7 @@ msgid "Part is virtual (not a physical part)" msgstr "Teil ist virtuell (kein physisches Teil)" #: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:682 +#: part/templates/part/part_base.html:681 msgid "Show Part Details" msgstr "Teildetails anzeigen" @@ -7540,7 +7468,7 @@ msgid "Minimum stock level" msgstr "Minimaler Bestand" #: part/templates/part/part_base.html:322 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1264 templates/js/translated/part.js:2444 +#: templates/js/translated/part.js:1265 templates/js/translated/part.js:2444 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -7563,19 +7491,19 @@ msgstr "QR-Code Teil" msgid "Link Barcode to Part" msgstr "Barcode mit Teil verknüpfen" -#: part/templates/part/part_base.html:512 +#: part/templates/part/part_base.html:511 msgid "Calculate" msgstr "Berechnen" -#: part/templates/part/part_base.html:529 +#: part/templates/part/part_base.html:528 msgid "Remove associated image from this part" msgstr "Verknüpftes Bild von diesem Teil entfernen" -#: part/templates/part/part_base.html:580 +#: part/templates/part/part_base.html:579 msgid "No matching images found" msgstr "Keine passenden Bilder gefunden" -#: part/templates/part/part_base.html:676 +#: part/templates/part/part_base.html:675 msgid "Hide Part Details" msgstr "Teildetails ausblenden" @@ -7633,9 +7561,9 @@ msgstr "Varianten" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1242 templates/js/translated/part.js:2145 +#: templates/js/translated/part.js:1243 templates/js/translated/part.js:2146 #: templates/js/translated/part.js:2392 templates/js/translated/stock.js:1059 -#: templates/js/translated/stock.js:2069 templates/navbar.html:31 +#: templates/js/translated/stock.js:2070 templates/navbar.html:31 msgid "Stock" msgstr "Bestand" @@ -7677,11 +7605,11 @@ msgstr "Artikelpreise überschreiben" msgid "Edit" msgstr "Bearbeiten" -#: part/templates/part/prices.html:28 stock/admin.py:247 +#: part/templates/part/prices.html:28 stock/admin.py:251 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2245 +#: templates/js/translated/stock.js:2246 msgid "Last Updated" msgstr "Zuletzt aktualisiert" @@ -7691,11 +7619,11 @@ msgstr "Preiskategorie" #: part/templates/part/prices.html:38 part/templates/part/prices.html:128 msgid "Minimum" -msgstr "" +msgstr "Minimum" #: part/templates/part/prices.html:39 part/templates/part/prices.html:129 msgid "Maximum" -msgstr "" +msgstr "Maximum" #: part/templates/part/prices.html:51 part/templates/part/prices.html:174 msgid "Internal Pricing" @@ -7753,9 +7681,9 @@ msgid "Update Pricing" msgstr "Preise aktualisieren" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:221 -#: templates/js/translated/part.js:704 templates/js/translated/part.js:2140 -#: templates/js/translated/part.js:2142 +#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:2141 +#: templates/js/translated/part.js:2143 msgid "No Stock" msgstr "Kein Bestand" @@ -7833,7 +7761,7 @@ msgstr "Teilbild nicht gefunden" msgid "Part Pricing" msgstr "Teilbepreisung" -#: plugin/api.py:168 +#: plugin/api.py:170 msgid "Plugin cannot be deleted as it is currently active" msgstr "Das Plugin kann nicht gelöscht werden, da es derzeit aktiv ist" @@ -7899,8 +7827,8 @@ msgstr "Barcode stimmt nicht mit einem vorhandenen Lagerartikel überein" 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:2590 -#: templates/js/translated/sales_order.js:1917 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2589 +#: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Unzureichender Bestand verfügbar" @@ -7994,25 +7922,25 @@ msgstr "Sendung wurde bereits geliefert" msgid "Quantity to allocate" msgstr "Zugewiesene Menge" -#: plugin/base/label/label.py:39 +#: plugin/base/label/label.py:39 templates/js/translated/label.js:155 msgid "Label printing failed" msgstr "Labeldruck fehlgeschlagen" -#: plugin/base/label/mixins.py:63 +#: plugin/base/label/mixins.py:56 msgid "Error rendering label to PDF" msgstr "Fehler beim Rendern des Etikett als PDF" -#: plugin/base/label/mixins.py:76 +#: plugin/base/label/mixins.py:70 msgid "Error rendering label to HTML" msgstr "Fehler beim Rendern des Etikett als HTML" -#: plugin/base/label/mixins.py:111 -msgid "Error rendering label to PNG" -msgstr "Fehler beim Rendern des Etikett als PNG" +#: plugin/base/label/mixins.py:151 +msgid "No items provided to print" +msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:25 msgid "InvenTree Barcodes" -msgstr "" +msgstr "InvenTree Barcodes" #: plugin/builtin/barcodes/inventree_barcode.py:26 msgid "Provides native support for barcodes" @@ -8021,7 +7949,7 @@ msgstr "Bietet native Unterstützung für Barcodes" #: plugin/builtin/barcodes/inventree_barcode.py:28 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 -#: plugin/builtin/labels/inventree_label.py:23 +#: plugin/builtin/labels/inventree_label.py:22 #: plugin/builtin/labels/inventree_machine.py:64 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -8075,19 +8003,19 @@ msgstr "InvenTree Währungsumstellung" msgid "Default currency exchange integration" msgstr "Standard-Wechselkursintegration" -#: plugin/builtin/labels/inventree_label.py:20 +#: plugin/builtin/labels/inventree_label.py:19 msgid "InvenTree PDF label printer" msgstr "InvenTree PDF-Etikettendrucker" -#: plugin/builtin/labels/inventree_label.py:21 +#: plugin/builtin/labels/inventree_label.py:20 msgid "Provides native support for printing PDF labels" msgstr "Bietet native Unterstützung für das Drucken von PDF-Etiketten" -#: plugin/builtin/labels/inventree_label.py:29 +#: plugin/builtin/labels/inventree_label.py:28 msgid "Debug mode" msgstr "Debug-Modus" -#: plugin/builtin/labels/inventree_label.py:30 +#: plugin/builtin/labels/inventree_label.py:29 msgid "Enable debug mode - returns raw HTML instead of PDF" msgstr "Debug-Modus aktivieren - gibt Roh-HTML statt PDF zurück" @@ -8099,11 +8027,11 @@ msgstr "InvenTree Maschinen-Etikettendrucker" msgid "Provides support for printing using a machine" msgstr "Unterstützt das Drucken mit einer Maschine" -#: plugin/builtin/labels/inventree_machine.py:150 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "Zuletzt benutzt" -#: plugin/builtin/labels/inventree_machine.py:167 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "Optionen" @@ -8127,7 +8055,7 @@ msgstr "Rand" msgid "Print a border around each label" msgstr "Einen Rahmen um jedes Label drucken" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:209 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:308 msgid "Landscape" msgstr "Querformat" @@ -8143,11 +8071,11 @@ msgstr "InvenTree Etikettendrucker" msgid "Arrays multiple labels onto a single sheet" msgstr "Anordnen mehrerer Etiketten auf einem einzigen Blatt" -#: plugin/builtin/labels/label_sheet.py:94 +#: plugin/builtin/labels/label_sheet.py:99 msgid "Label is too large for page size" msgstr "Label ist zu groß für Seitengröße" -#: plugin/builtin/labels/label_sheet.py:128 +#: plugin/builtin/labels/label_sheet.py:133 msgid "No labels were generated" msgstr "Es wurden keine Etiketten generiert" @@ -8240,61 +8168,62 @@ msgstr "Plugin kann nicht deinstalliert werden, da es momentan aktiv ist" msgid "Uninstalled plugin successfully" msgstr "Plugin erfolgreich deinstallieren" -#: plugin/models.py:30 +#: plugin/models.py:36 msgid "Plugin Configuration" msgstr "Plugin-Konfiguration" -#: plugin/models.py:31 +#: plugin/models.py:37 msgid "Plugin Configurations" msgstr "Plugin-Konfigurationen" -#: plugin/models.py:34 users/models.py:100 +#: plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Schlüssel" -#: plugin/models.py:34 +#: plugin/models.py:44 msgid "Key of plugin" msgstr "Schlüssel des Plugins" -#: plugin/models.py:42 +#: plugin/models.py:52 msgid "PluginName of the plugin" msgstr "Name des Plugins" -#: plugin/models.py:49 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:90 msgid "Package Name" msgstr "Paket-Name" -#: plugin/models.py:51 +#: plugin/models.py:61 msgid "Name of the installed package, if the plugin was installed via PIP" msgstr "Name des installierten Paketes, wenn das Plugin über PIP installiert wurde" -#: plugin/models.py:56 +#: plugin/models.py:66 msgid "Is the plugin active" msgstr "Ist das Plugin aktiv" -#: plugin/models.py:147 templates/js/translated/table_filters.js:370 +#: plugin/models.py:157 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:504 msgid "Installed" msgstr "Installiert" -#: plugin/models.py:156 +#: plugin/models.py:166 msgid "Sample plugin" msgstr "Beispiel-Plugin" -#: plugin/models.py:164 +#: plugin/models.py:174 msgid "Builtin Plugin" msgstr "Integriertes Plugin" -#: plugin/models.py:172 +#: plugin/models.py:182 msgid "Package Plugin" msgstr "Paket-Plugin" -#: plugin/models.py:196 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:220 report/models.py:475 +#: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" -msgstr "" +msgstr "Plugin" -#: plugin/models.py:243 +#: plugin/models.py:267 msgid "Method" msgstr "Methode" @@ -8302,17 +8231,17 @@ msgstr "Methode" msgid "No author found" msgstr "Kein Autor gefunden" -#: plugin/registry.py:588 +#: plugin/registry.py:598 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Plugin '{p}' ist nicht kompatibel mit der aktuellen InvenTree Version {v}" -#: plugin/registry.py:591 +#: plugin/registry.py:601 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Plugin benötigt mindestens Version {v}" -#: plugin/registry.py:593 +#: plugin/registry.py:603 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Plugin benötigt maximal Version {v}" @@ -8373,7 +8302,7 @@ msgstr "Name für das Plugin-Paket - kann auch einen Versionstext enthalten" #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" -msgstr "" +msgstr "Version" #: plugin/serializers.py:101 msgid "Version specifier for the plugin. Leave blank for latest version." @@ -8395,279 +8324,359 @@ msgstr "Installation nicht bestätigt" msgid "Either packagename of URL must be provided" msgstr "Entweder Paketname oder URL muss angegeben werden" -#: plugin/serializers.py:156 +#: plugin/serializers.py:161 msgid "Full reload" msgstr "Komplett neu laden" -#: plugin/serializers.py:157 +#: plugin/serializers.py:162 msgid "Perform a full reload of the plugin registry" msgstr "Führe ein vollständiges Nachladen der Plugin-Registrierung durch" -#: plugin/serializers.py:163 +#: plugin/serializers.py:168 msgid "Force reload" msgstr "Neuladen erzwingen" -#: plugin/serializers.py:165 +#: plugin/serializers.py:170 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "Erzwinge ein erneutes Laden der Plugin-Registrierung, auch wenn sie bereits geladen ist" -#: plugin/serializers.py:172 +#: plugin/serializers.py:177 msgid "Collect plugins" msgstr "Plugins sammeln" -#: plugin/serializers.py:173 +#: plugin/serializers.py:178 msgid "Collect plugins and add them to the registry" msgstr "Plugins sammeln und zur Registrierung hinzufügen" -#: plugin/serializers.py:195 +#: plugin/serializers.py:205 msgid "Activate Plugin" msgstr "Plugin aktivieren" -#: plugin/serializers.py:196 +#: plugin/serializers.py:206 msgid "Activate this plugin" msgstr "Dieses Plugin aktivieren" -#: plugin/serializers.py:219 +#: plugin/serializers.py:226 msgid "Delete configuration" msgstr "Konfiguration löschen" -#: plugin/serializers.py:220 +#: plugin/serializers.py:227 msgid "Delete the plugin configuration from the database" msgstr "Plugin-Konfiguration aus der Datenbank löschen" -#: report/api.py:158 +#: report/api.py:88 msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" -#: report/api.py:197 report/api.py:234 +#: report/api.py:103 report/models.py:439 report/serializers.py:98 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1747 +#: templates/js/translated/return_order.js:353 +#: templates/js/translated/sales_order.js:887 +#: templates/js/translated/sales_order.js:1047 +msgid "Items" +msgstr "Teile" + +#: report/api.py:180 +msgid "Plugin not found" +msgstr "" + +#: report/api.py:182 +msgid "Plugin is not active" +msgstr "" + +#: report/api.py:184 +msgid "Plugin does not support label printing" +msgstr "" + +#: report/api.py:233 +msgid "Invalid label dimensions" +msgstr "" + +#: report/api.py:248 report/api.py:329 +msgid "No valid items provided to template" +msgstr "" + +#: report/api.py:283 +msgid "Error printing label" +msgstr "Fehler beim Drucken des Labels" + +#: report/api.py:375 report/api.py:411 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Vorlagendatei '{template}' fehlt oder existiert nicht" -#: report/api.py:319 -msgid "Test report" -msgstr "Testbericht" - -#: report/helpers.py:15 +#: report/helpers.py:43 msgid "A4" -msgstr "" +msgstr "A4" -#: report/helpers.py:16 +#: report/helpers.py:44 msgid "A3" -msgstr "" +msgstr "A3" -#: report/helpers.py:17 +#: report/helpers.py:45 msgid "Legal" msgstr "US-Legal" -#: report/helpers.py:18 +#: report/helpers.py:46 msgid "Letter" msgstr "US-Letter" -#: report/models.py:177 +#: report/models.py:119 +msgid "Template file with this name already exists" +msgstr "" + +#: report/models.py:151 msgid "Template name" msgstr "Vorlagen Name" -#: report/models.py:183 -msgid "Report template file" -msgstr "Bericht-Vorlage Datei" +#: report/models.py:157 +msgid "Template description" +msgstr "" -#: report/models.py:190 -msgid "Report template description" -msgstr "Bericht-Vorlage Beschreibung" +#: report/models.py:163 +msgid "Revision number (auto-increments)" +msgstr "" -#: report/models.py:196 -msgid "Report revision number (auto-increments)" -msgstr "Bericht Revisionsnummer (autom. erhöht)" +#: report/models.py:203 +msgid "Filename Pattern" +msgstr "Dateinamen-Muster" #: report/models.py:204 +msgid "Pattern for generating filenames" +msgstr "" + +#: report/models.py:209 +msgid "Template is enabled" +msgstr "" + +#: report/models.py:215 +msgid "Target model type for template" +msgstr "" + +#: report/models.py:235 +msgid "Filters" +msgstr "Filter" + +#: report/models.py:236 +msgid "Template query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:295 report/models.py:362 +msgid "Template file" +msgstr "" + +#: report/models.py:303 msgid "Page size for PDF reports" msgstr "Seitengröße für PDF-Berichte" -#: report/models.py:210 +#: report/models.py:309 msgid "Render report in landscape orientation" msgstr "Bericht in Querformat anzeigen" -#: report/models.py:318 -msgid "Pattern for generating report filenames" -msgstr "Muster für die Erstellung von Berichtsdateinamen" +#: report/models.py:368 +msgid "Width [mm]" +msgstr "Breite [mm]" -#: report/models.py:325 -msgid "Report template is enabled" -msgstr "Bericht-Vorlage ist ein" +#: report/models.py:369 +msgid "Label width, specified in mm" +msgstr "Label-Breite in mm" -#: report/models.py:347 -msgid "StockItem query filters (comma-separated list of key=value pairs)" -msgstr "Lagerartikel-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" +#: report/models.py:375 +msgid "Height [mm]" +msgstr "Höhe [mm]" -#: report/models.py:354 -msgid "Include Installed Tests" -msgstr "einfügen Installiert in Tests" +#: report/models.py:376 +msgid "Label height, specified in mm" +msgstr "Label-Höhe in mm" -#: report/models.py:356 -msgid "Include test results for stock items installed inside assembled item" -msgstr "Test-Ergebnisse für Lagerartikel in Baugruppen einschließen" - -#: report/models.py:424 -msgid "Build Filters" -msgstr "Bauauftrag Filter" - -#: report/models.py:425 -msgid "Build query filters (comma-separated list of key=value pairs" -msgstr "Bau-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" - -#: report/models.py:464 -msgid "Part Filters" -msgstr "Teil Filter" - -#: report/models.py:465 -msgid "Part query filters (comma-separated list of key=value pairs" -msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" - -#: report/models.py:497 -msgid "Purchase order query filters" -msgstr "Bestellungs-Abfragefilter" - -#: report/models.py:533 -msgid "Sales order query filters" -msgstr "Auftrags-Abfragefilter" - -#: report/models.py:569 -msgid "Return order query filters" -msgstr "Rückgabe von Auftragsabfragefiltern" - -#: report/models.py:641 -msgid "Snippet file with this name already exists" -msgstr "Snippet-Datei mit diesem Namen existiert bereits" - -#: report/models.py:648 -msgid "Snippet" +#: report/models.py:439 +msgid "Number of items to process" msgstr "" -#: report/models.py:649 +#: report/models.py:445 +msgid "Report generation is complete" +msgstr "" + +#: report/models.py:449 templates/js/translated/build.js:2177 +msgid "Progress" +msgstr "Fortschritt" + +#: report/models.py:449 +msgid "Report generation progress" +msgstr "" + +#: report/models.py:457 +msgid "Report Template" +msgstr "" + +#: report/models.py:464 report/models.py:487 +msgid "Output File" +msgstr "" + +#: report/models.py:465 report/models.py:488 +msgid "Generated output file" +msgstr "" + +#: report/models.py:476 +msgid "Label output plugin" +msgstr "" + +#: report/models.py:480 +msgid "Label Template" +msgstr "" + +#: report/models.py:503 +msgid "Snippet" +msgstr "Schnipsel" + +#: report/models.py:504 msgid "Report snippet file" msgstr "Berichts-Snippet" -#: report/models.py:656 +#: report/models.py:511 msgid "Snippet file description" msgstr "Snippet-Beschreibung" -#: report/models.py:714 -msgid "Asset file with this name already exists" -msgstr "Eine Datei mit diesem Namen existiert bereits" - -#: report/models.py:722 +#: report/models.py:529 msgid "Asset" msgstr "Ressource" -#: report/models.py:723 +#: report/models.py:530 msgid "Report asset file" msgstr "Berichts-Ressource" -#: report/models.py:730 +#: report/models.py:537 msgid "Asset file description" msgstr "Ressource-Beschreibung" -#: report/models.py:752 -msgid "stock location query filters (comma-separated list of key=value pairs)" -msgstr "Filter für standortbezogene Abfragen (kommaseparierte Liste von Schlüssel=Wert-Paaren)" +#: report/serializers.py:91 +msgid "Select report template" +msgstr "" + +#: report/serializers.py:99 report/serializers.py:149 +msgid "List of item primary keys to include in the report" +msgstr "" + +#: report/serializers.py:132 +msgid "Select label template" +msgstr "Etiketten-Vorlage auswählen" + +#: report/serializers.py:140 +msgid "Printing Plugin" +msgstr "" + +#: report/serializers.py:141 +msgid "Select plugin to use for label printing" +msgstr "" + +#: report/templates/label/part_label.html:31 +#: report/templates/label/stockitem_qr.html:21 +#: report/templates/label/stocklocation_qr.html:20 +#: templates/allauth_2fa/setup.html:18 +msgid "QR Code" +msgstr "QR-Code" + +#: report/templates/label/part_label_code128.html:31 +#: report/templates/label/stocklocation_qr_and_text.html:31 +#: templates/qr_code.html:7 +msgid "QR code" +msgstr "QR-Code" #: report/templates/report/inventree_bill_of_materials_report.html:133 msgid "Materials needed" msgstr "Benötigte Materialien" -#: report/templates/report/inventree_build_order_base.html:146 +#: report/templates/report/inventree_build_order_report.html:146 msgid "Required For" msgstr "benötigt für" -#: report/templates/report/inventree_po_report_base.html:15 +#: report/templates/report/inventree_purchase_order_report.html:15 msgid "Supplier was deleted" msgstr "Lieferant gelöscht" -#: report/templates/report/inventree_po_report_base.html:30 -#: report/templates/report/inventree_so_report_base.html:30 +#: 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/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2116 -#: templates/js/translated/sales_order.js:1837 +#: templates/js/translated/purchase_order.js:2115 +#: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Stück-Preis" -#: report/templates/report/inventree_po_report_base.html:55 -#: report/templates/report/inventree_return_order_report_base.html:48 -#: report/templates/report/inventree_so_report_base.html:55 +#: report/templates/report/inventree_purchase_order_report.html:55 +#: report/templates/report/inventree_return_order_report.html:48 +#: report/templates/report/inventree_sales_order_report.html:55 msgid "Extra Line Items" msgstr "Zusätzliche Positionen" -#: report/templates/report/inventree_po_report_base.html:72 -#: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:2018 -#: templates/js/translated/sales_order.js:1806 +#: report/templates/report/inventree_purchase_order_report.html:72 +#: report/templates/report/inventree_sales_order_report.html:72 +#: templates/js/translated/purchase_order.js:2017 +#: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "Summe" -#: report/templates/report/inventree_return_order_report_base.html:25 -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:809 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:519 templates/js/translated/build.js:1364 -#: templates/js/translated/build.js:2353 -#: templates/js/translated/model_renderers.js:224 -#: templates/js/translated/return_order.js:540 -#: templates/js/translated/return_order.js:724 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:824 +#: stock/serializers.py:149 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:519 templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:2355 +#: 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:1611 -#: templates/js/translated/sales_order.js:1696 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 #: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Seriennummer" -#: report/templates/report/inventree_slr_report.html:97 +#: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "Lagerstandorte" -#: report/templates/report/inventree_test_report_base.html:21 +#: report/templates/report/inventree_test_report.html:21 msgid "Stock Item Test Report" msgstr "Lagerartikel Test-Bericht" -#: report/templates/report/inventree_test_report_base.html:97 +#: report/templates/report/inventree_test_report.html:97 msgid "Test Results" msgstr "Testergebnisse" -#: report/templates/report/inventree_test_report_base.html:102 -#: templates/js/translated/stock.js:1492 +#: report/templates/report/inventree_test_report.html:102 +#: templates/js/translated/stock.js:1495 msgid "Test" -msgstr "" +msgstr "Test" -#: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2430 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2412 msgid "Result" msgstr "Ergebnis" -#: report/templates/report/inventree_test_report_base.html:130 +#: report/templates/report/inventree_test_report.html:130 msgid "Pass" msgstr "bestanden" -#: report/templates/report/inventree_test_report_base.html:132 +#: report/templates/report/inventree_test_report.html:132 msgid "Fail" msgstr "fehlgeschlagen" -#: report/templates/report/inventree_test_report_base.html:139 +#: report/templates/report/inventree_test_report.html:139 msgid "No result (required)" msgstr "Kein Ergebnis (erforderlich)" -#: report/templates/report/inventree_test_report_base.html:141 +#: report/templates/report/inventree_test_report.html:141 msgid "No result" msgstr "Kein Ergebnis" -#: report/templates/report/inventree_test_report_base.html:154 +#: report/templates/report/inventree_test_report.html:154 #: stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Verbaute Objekte" -#: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:162 templates/js/translated/stock.js:700 -#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3110 +#: report/templates/report/inventree_test_report.html:168 stock/admin.py:161 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3110 msgid "Serial" msgstr "Seriennummer" @@ -8687,617 +8696,793 @@ msgstr "part_image tag benötigt eine Bauteilinstanz" msgid "company_image tag requires a Company instance" msgstr "company_image tag erfordert eine Firmeninstanz" -#: stock/admin.py:52 stock/admin.py:172 +#: stock/admin.py:51 stock/admin.py:171 msgid "Location ID" msgstr "Standort-ID" -#: stock/admin.py:54 stock/admin.py:176 +#: stock/admin.py:53 stock/admin.py:175 msgid "Location Name" msgstr "Ortsname" -#: stock/admin.py:64 stock/templates/stock/location.html:131 +#: stock/admin.py:63 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Lagerortpfad" -#: stock/admin.py:149 +#: stock/admin.py:148 msgid "Stock Item ID" msgstr "Lagerartikel ID" -#: stock/admin.py:168 +#: stock/admin.py:167 msgid "Status Code" msgstr "Statuscode" -#: stock/admin.py:180 +#: stock/admin.py:179 msgid "Supplier Part ID" msgstr "Zuliefererteil-ID" -#: stock/admin.py:185 +#: stock/admin.py:184 +msgid "Supplier Part SKU" +msgstr "" + +#: stock/admin.py:189 msgid "Supplier ID" msgstr "Zulieferer ID" -#: stock/admin.py:191 +#: stock/admin.py:195 msgid "Supplier Name" msgstr "Lieferant" -#: stock/admin.py:196 +#: stock/admin.py:200 msgid "Customer ID" msgstr "Kunden ID" -#: stock/admin.py:201 stock/models.py:789 +#: stock/admin.py:205 stock/models.py:804 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "verbaut in" -#: stock/admin.py:206 +#: stock/admin.py:210 msgid "Build ID" msgstr "Bauauftrag-ID" -#: stock/admin.py:216 +#: stock/admin.py:220 msgid "Sales Order ID" msgstr "Auftrags-ID" -#: stock/admin.py:221 +#: stock/admin.py:225 msgid "Purchase Order ID" msgstr "Bestellungs-ID" -#: stock/admin.py:236 +#: stock/admin.py:240 msgid "Review Needed" msgstr "Überprüfung erforderlich" -#: stock/admin.py:241 +#: stock/admin.py:245 msgid "Delete on Deplete" msgstr "Löschen wenn leer" -#: stock/admin.py:256 stock/models.py:883 +#: stock/admin.py:260 stock/models.py:898 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2229 users/models.py:124 +#: templates/js/translated/stock.js:2230 users/models.py:124 msgid "Expiry Date" msgstr "Ablaufdatum" -#: stock/api.py:284 +#: stock/api.py:312 msgid "Filter by location depth" msgstr "Filtern nach Standorttiefe" -#: stock/api.py:304 +#: stock/api.py:332 msgid "Include sub-locations in filtered results" msgstr "Unterorte in gefilterte Ergebnisse einbeziehen" -#: stock/api.py:325 +#: stock/api.py:353 msgid "Parent Location" msgstr "Übergeordneter Ort" -#: stock/api.py:326 +#: stock/api.py:354 msgid "Filter by parent location" msgstr "Filtern nach übergeordnetem Ort" -#: stock/api.py:579 templates/js/translated/table_filters.js:427 +#: stock/api.py:609 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "Externer Standort" -#: stock/api.py:767 +#: stock/api.py:797 msgid "Part Tree" msgstr "Teile-Baum" -#: stock/api.py:797 +#: stock/api.py:827 msgid "Expiry date before" msgstr "Gültigkeitsdauer vor" -#: stock/api.py:801 +#: stock/api.py:831 msgid "Expiry date after" msgstr "Gültigkeitsdauer nach" -#: stock/api.py:804 stock/templates/stock/item_base.html:439 +#: stock/api.py:834 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "überfällig" -#: stock/api.py:891 +#: stock/api.py:921 msgid "Quantity is required" msgstr "Menge ist erforderlich" -#: stock/api.py:897 +#: stock/api.py:927 msgid "Valid part must be supplied" msgstr "Gültiges Teil muss angegeben werden" -#: stock/api.py:928 +#: stock/api.py:958 msgid "The given supplier part does not exist" msgstr "Der angegebene Lieferantenartikel existiert nicht" -#: stock/api.py:938 +#: stock/api.py:968 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Das Zulieferteil hat eine Packungsgröße definiert, aber das Kennzeichen use_pack_size ist nicht gesetzt" -#: stock/api.py:969 +#: stock/api.py:999 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:63 +#: stock/models.py:60 msgid "Stock Location type" msgstr "Lagerstandort Typ" -#: stock/models.py:64 +#: stock/models.py:61 msgid "Stock Location types" msgstr "Lagerstandorte Typen" -#: stock/models.py:90 +#: stock/models.py:87 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:771 +#: stock/models.py:124 stock/models.py:786 #: 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:179 +#: stock/models.py:125 stock/templates/stock/location.html:186 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Bestand-Lagerorte" -#: stock/models.py:158 stock/models.py:932 +#: stock/models.py:167 stock/models.py:947 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:159 stock/models.py:933 +#: stock/models.py:168 stock/models.py:948 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:167 +#: stock/models.py:176 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:174 templates/js/translated/stock.js:2781 +#: stock/models.py:183 templates/js/translated/stock.js:2781 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Extern" -#: stock/models.py:175 +#: stock/models.py:184 msgid "This is an external stock location" msgstr "Dies ist ein externer Lagerort" -#: stock/models.py:181 templates/js/translated/stock.js:2790 +#: stock/models.py:190 templates/js/translated/stock.js:2790 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Standorttyp" -#: stock/models.py:185 +#: stock/models.py:194 msgid "Stock location type of this location" msgstr "Standortart dieses Standortes" -#: stock/models.py:254 +#: stock/models.py:261 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:626 +#: stock/models.py:641 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagerartikel können nicht in strukturelle Lagerorte abgelegt werden!" -#: stock/models.py:653 stock/serializers.py:290 +#: stock/models.py:668 stock/serializers.py:446 msgid "Stock item cannot be created for virtual parts" msgstr "Für virtuelle Teile können keine Lagerartikel erstellt werden" -#: stock/models.py:670 +#: stock/models.py:685 #, 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:680 stock/models.py:693 +#: stock/models.py:695 stock/models.py:708 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:683 +#: stock/models.py:698 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:707 +#: stock/models.py:722 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:712 +#: stock/models.py:727 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:725 +#: stock/models.py:740 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:741 +#: stock/models.py:756 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:753 +#: stock/models.py:768 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:763 +#: stock/models.py:778 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:775 +#: stock/models.py:790 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:783 stock/serializers.py:1351 +#: stock/models.py:798 stock/serializers.py:1467 msgid "Packaging this stock item is stored in" msgstr "Verpackung, in der dieser Lagerartikel gelagert ist" -#: stock/models.py:794 +#: stock/models.py:809 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:813 +#: stock/models.py:828 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:827 stock/serializers.py:1334 +#: stock/models.py:842 stock/serializers.py:1450 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:832 +#: stock/models.py:847 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:842 +#: stock/models.py:857 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:845 +#: stock/models.py:860 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:852 stock/templates/stock/item_base.html:363 +#: stock/models.py:867 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Verbraucht von" -#: stock/models.py:855 +#: stock/models.py:870 msgid "Build order which consumed this stock item" msgstr "Bauauftrag der diesen Lagerartikel verbrauchte" -#: stock/models.py:864 +#: stock/models.py:879 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:868 +#: stock/models.py:883 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:874 +#: stock/models.py:889 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:885 +#: stock/models.py:900 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:903 +#: stock/models.py:918 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:904 +#: stock/models.py:919 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:924 +#: stock/models.py:939 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:955 +#: stock/models.py:970 msgid "Converted to part" msgstr "In Teil umgewandelt" -#: stock/models.py:1465 +#: stock/models.py:1486 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1471 +#: stock/models.py:1492 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1479 +#: stock/models.py:1500 #, 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:1485 +#: stock/models.py:1506 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1490 +#: stock/models.py:1511 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1498 stock/serializers.py:529 +#: stock/models.py:1519 stock/serializers.py:660 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" -#: stock/models.py:1595 +#: stock/models.py:1616 msgid "Test template does not exist" msgstr "Testvorlage existiert nicht" -#: stock/models.py:1613 +#: stock/models.py:1634 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1617 +#: stock/models.py:1638 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1620 +#: stock/models.py:1641 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1623 +#: stock/models.py:1644 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1626 +#: stock/models.py:1647 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1629 +#: stock/models.py:1650 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1636 stock/serializers.py:1240 +#: stock/models.py:1657 stock/serializers.py:1356 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1640 +#: stock/models.py:1661 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1648 +#: stock/models.py:1669 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1653 +#: stock/models.py:1674 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1870 +#: stock/models.py:1901 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:2333 +#: stock/models.py:2310 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2398 +#: stock/models.py:2378 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2403 +#: stock/models.py:2383 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2430 +#: stock/models.py:2388 +msgid "Invalid value for this test" +msgstr "" + +#: stock/models.py:2412 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2437 +#: stock/models.py:2419 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2445 +#: stock/models.py:2427 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2449 +#: stock/models.py:2431 msgid "Test notes" msgstr "Test Notizen" -#: stock/models.py:2457 templates/js/translated/stock.js:1545 +#: stock/models.py:2439 templates/js/translated/stock.js:1548 msgid "Test station" msgstr "Teststation" -#: stock/models.py:2458 +#: stock/models.py:2440 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:2464 +#: stock/models.py:2446 msgid "Started" msgstr "Gestartet" -#: stock/models.py:2465 +#: stock/models.py:2447 msgid "The timestamp of the test start" msgstr "Der Zeitstempel des Teststarts" -#: stock/models.py:2471 +#: stock/models.py:2453 msgid "Finished" msgstr "Fertiggestellt" -#: stock/models.py:2472 +#: stock/models.py:2454 msgid "The timestamp of the test finish" msgstr "Der Zeitstempel der Test-Beendigung" -#: stock/serializers.py:100 +#: stock/serializers.py:74 +msgid "Generated batch code" +msgstr "" + +#: stock/serializers.py:83 +msgid "Select build order" +msgstr "" + +#: stock/serializers.py:92 +msgid "Select stock item to generate batch code for" +msgstr "" + +#: stock/serializers.py:101 +msgid "Select location to generate batch code for" +msgstr "" + +#: stock/serializers.py:110 +msgid "Select part to generate batch code for" +msgstr "" + +#: stock/serializers.py:119 +msgid "Select purchase order" +msgstr "" + +#: stock/serializers.py:126 +msgid "Enter quantity for batch code" +msgstr "" + +#: stock/serializers.py:149 +msgid "Generated serial number" +msgstr "" + +#: stock/serializers.py:158 +msgid "Select part to generate serial number for" +msgstr "" + +#: stock/serializers.py:166 +msgid "Quantity of serial numbers to generate" +msgstr "" + +#: stock/serializers.py:228 msgid "Test template for this result" msgstr "Testvorlage für dieses Ergebnis" -#: stock/serializers.py:119 +#: stock/serializers.py:247 msgid "Template ID or test name must be provided" msgstr "Vorlagen-ID oder Testname muss angegeben werden" -#: stock/serializers.py:151 +#: stock/serializers.py:279 msgid "The test finished time cannot be earlier than the test started time" msgstr "Die Test-Endzeit kann nicht früher als die Startzeit des Tests sein" -#: stock/serializers.py:184 +#: stock/serializers.py:315 msgid "Serial number is too large" msgstr "Seriennummer ist zu lang" -#: stock/serializers.py:282 +#: stock/serializers.py:438 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:402 +#: stock/serializers.py:558 msgid "Purchase price of this stock item, per unit or pack" msgstr "Einkaufspreis dieses Lagerartikels, pro Einheit oder Verpackungseinheit" -#: stock/serializers.py:464 +#: stock/serializers.py:595 msgid "Enter number of stock items to serialize" msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben" -#: stock/serializers.py:477 +#: stock/serializers.py:608 #, 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:484 +#: stock/serializers.py:615 msgid "Enter serial numbers for new items" msgstr "Seriennummern für neue Teile eingeben" -#: stock/serializers.py:495 stock/serializers.py:1197 stock/serializers.py:1453 +#: stock/serializers.py:626 stock/serializers.py:1313 stock/serializers.py:1569 msgid "Destination stock location" msgstr "Ziel-Bestand" -#: stock/serializers.py:502 +#: stock/serializers.py:633 msgid "Optional note field" msgstr "Optionales Notizfeld" -#: stock/serializers.py:512 +#: stock/serializers.py:643 msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" -#: stock/serializers.py:567 +#: stock/serializers.py:698 msgid "Select stock item to install" msgstr "Lagerartikel für Installation auswählen" -#: stock/serializers.py:574 +#: stock/serializers.py:705 msgid "Quantity to Install" msgstr "Zu installierende Menge" -#: stock/serializers.py:575 +#: stock/serializers.py:706 msgid "Enter the quantity of items to install" msgstr "Anzahl der zu verwendenden Artikel eingeben" -#: stock/serializers.py:580 stock/serializers.py:660 stock/serializers.py:756 -#: stock/serializers.py:806 +#: stock/serializers.py:711 stock/serializers.py:791 stock/serializers.py:887 +#: stock/serializers.py:937 msgid "Add transaction note (optional)" msgstr " Transaktionsnotizen hinzufügen (optional)" -#: stock/serializers.py:588 +#: stock/serializers.py:719 msgid "Quantity to install must be at least 1" msgstr "Die zu verwendende Menge muss mindestens 1 sein" -#: stock/serializers.py:596 +#: stock/serializers.py:727 msgid "Stock item is unavailable" msgstr "Lagerartikel ist nicht verfügbar" -#: stock/serializers.py:607 +#: stock/serializers.py:738 msgid "Selected part is not in the Bill of Materials" msgstr "Ausgewähltes Teil ist nicht in der Stückliste" -#: stock/serializers.py:620 +#: stock/serializers.py:751 msgid "Quantity to install must not exceed available quantity" msgstr "Die zu verwendende Menge darf die verfügbare Menge nicht überschreiten" -#: stock/serializers.py:655 +#: stock/serializers.py:786 msgid "Destination location for uninstalled item" msgstr "Ziel Lagerort für unverbautes Objekt" -#: stock/serializers.py:690 +#: stock/serializers.py:821 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:703 +#: stock/serializers.py:834 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:720 +#: stock/serializers.py:851 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Lagerartikel konnte nicht mit Zulieferteil zugewiesen werden" -#: stock/serializers.py:751 +#: stock/serializers.py:882 msgid "Destination location for returned item" msgstr "Ziel Lagerort für zurückgegebene Artikel" -#: stock/serializers.py:788 +#: stock/serializers.py:919 msgid "Select stock items to change status" msgstr "Lagerartikel auswählen, um den Status zu ändern" -#: stock/serializers.py:794 +#: stock/serializers.py:925 msgid "No stock items selected" msgstr "Keine Lagerartikel ausgewählt" -#: stock/serializers.py:890 stock/serializers.py:953 +#: stock/serializers.py:1021 stock/serializers.py:1084 #: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:213 +#: stock/templates/stock/location.html:222 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: stock/serializers.py:1069 +#: stock/serializers.py:1185 msgid "Part must be salable" msgstr "Teil muss verkaufbar sein" -#: stock/serializers.py:1073 +#: stock/serializers.py:1189 msgid "Item is allocated to a sales order" msgstr "Artikel ist einem Kundenauftrag zugeordnet" -#: stock/serializers.py:1077 +#: stock/serializers.py:1193 msgid "Item is allocated to a build order" msgstr "Artikel ist einem Fertigungsauftrag zugeordnet" -#: stock/serializers.py:1101 +#: stock/serializers.py:1217 msgid "Customer to assign stock items" msgstr "Kunde zum Zuweisen von Lagerartikel" -#: stock/serializers.py:1107 +#: stock/serializers.py:1223 msgid "Selected company is not a customer" msgstr "Ausgewählte Firma ist kein Kunde" -#: stock/serializers.py:1115 +#: stock/serializers.py:1231 msgid "Stock assignment notes" msgstr "Notizen zur Lagerzuordnung" -#: stock/serializers.py:1125 stock/serializers.py:1379 +#: stock/serializers.py:1241 stock/serializers.py:1495 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" -#: stock/serializers.py:1204 +#: stock/serializers.py:1320 msgid "Stock merging notes" msgstr "Notizen zur Lagerartikelzusammenführung" -#: stock/serializers.py:1209 +#: stock/serializers.py:1325 msgid "Allow mismatched suppliers" msgstr "Unterschiedliche Lieferanten erlauben" -#: stock/serializers.py:1210 +#: stock/serializers.py:1326 msgid "Allow stock items with different supplier parts to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben" -#: stock/serializers.py:1215 +#: stock/serializers.py:1331 msgid "Allow mismatched status" msgstr "Unterschiedliche Status erlauben" -#: stock/serializers.py:1216 +#: stock/serializers.py:1332 msgid "Allow stock items with different status codes to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben" -#: stock/serializers.py:1226 +#: stock/serializers.py:1342 msgid "At least two stock items must be provided" msgstr "Mindestens zwei Lagerartikel müssen angegeben werden" -#: stock/serializers.py:1293 +#: stock/serializers.py:1409 msgid "No Change" msgstr "Keine Änderung" -#: stock/serializers.py:1322 +#: stock/serializers.py:1438 msgid "StockItem primary key value" msgstr "Primärschlüssel Lagerelement" -#: stock/serializers.py:1341 +#: stock/serializers.py:1457 msgid "Stock item status code" msgstr "Lagerartikel Status-Code" -#: stock/serializers.py:1369 +#: stock/serializers.py:1485 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" +#: stock/status_codes.py:11 +msgid "OK" +msgstr "OK" + +#: stock/status_codes.py:12 +msgid "Attention needed" +msgstr "erfordert Eingriff" + +#: stock/status_codes.py:13 +msgid "Damaged" +msgstr "Beschädigt" + +#: stock/status_codes.py:14 +msgid "Destroyed" +msgstr "Zerstört" + +#: stock/status_codes.py:15 +msgid "Rejected" +msgstr "Zurückgewiesen" + +#: stock/status_codes.py:19 +msgid "Quarantined" +msgstr "In Quarantäne" + +#: stock/status_codes.py:40 +msgid "Legacy stock tracking entry" +msgstr "Alter Bestand-Verfolgungs-Eintrag" + +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +msgid "Stock item created" +msgstr "Lagerartikel erstellt" + +#: stock/status_codes.py:45 +msgid "Edited stock item" +msgstr "Lagerartikel bearbeitet" + +#: stock/status_codes.py:46 +msgid "Assigned serial number" +msgstr "Seriennummer hinzugefügt" + +#: stock/status_codes.py:49 +msgid "Stock counted" +msgstr "Bestand gezählt" + +#: stock/status_codes.py:50 +msgid "Stock manually added" +msgstr "Bestand manuell hinzugefügt" + +#: stock/status_codes.py:51 +msgid "Stock manually removed" +msgstr "Bestand manuell entfernt" + +#: stock/status_codes.py:54 +msgid "Location changed" +msgstr "Standort geändert" + +#: stock/status_codes.py:55 +msgid "Stock updated" +msgstr "Lagerbestand aktualisiert" + +#: stock/status_codes.py:58 +msgid "Installed into assembly" +msgstr "In Baugruppe installiert" + +#: stock/status_codes.py:59 +msgid "Removed from assembly" +msgstr "Aus Baugruppe entfernt" + +#: stock/status_codes.py:61 +msgid "Installed component item" +msgstr "Komponente installiert" + +#: stock/status_codes.py:62 +msgid "Removed component item" +msgstr "Komponente entfernt" + +#: stock/status_codes.py:65 +msgid "Split from parent item" +msgstr "Vom übergeordneten Element geteilt" + +#: stock/status_codes.py:66 +msgid "Split child item" +msgstr "Unterobjekt geteilt" + +#: stock/status_codes.py:69 templates/js/translated/stock.js:1858 +msgid "Merged stock items" +msgstr "Lagerartikel zusammengeführt" + +#: stock/status_codes.py:72 +msgid "Converted to variant" +msgstr "In Variante umgewandelt" + +#: stock/status_codes.py:75 +msgid "Build order output created" +msgstr "Endprodukt erstellt" + +#: stock/status_codes.py:76 +msgid "Build order output completed" +msgstr "Endprodukt fertiggestellt" + +#: stock/status_codes.py:77 +msgid "Build order output rejected" +msgstr "Endprodukt abgelehnt" + +#: stock/status_codes.py:78 templates/js/translated/stock.js:1764 +msgid "Consumed by build order" +msgstr "Durch Bauauftrag verbraucht" + +#: stock/status_codes.py:81 +msgid "Shipped against Sales Order" +msgstr "Versandt gegen Verkaufsauftrag" + +#: stock/status_codes.py:84 +msgid "Received against Purchase Order" +msgstr "Gegen Bestellung empfangen" + +#: stock/status_codes.py:87 +msgid "Returned against Return Order" +msgstr "Zurückgeschickt gegen Rücksendeauftrag" + +#: stock/status_codes.py:90 templates/js/translated/table_filters.js:375 +msgid "Sent to customer" +msgstr "Zum Kunden geschickt" + +#: stock/status_codes.py:91 +msgid "Returned from customer" +msgstr "Rücksendung vom Kunden" + #: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "Informationen zur Bestand-Verfolgung" @@ -9319,7 +9504,7 @@ msgstr "Testdaten" msgid "Test Report" msgstr "Test-Bericht" -#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:286 +#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:276 msgid "Delete Test Data" msgstr "Testdaten löschen" @@ -9339,11 +9524,11 @@ msgstr "Installierte Lagerartikel" msgid "Install Stock Item" msgstr "Lagerartikel installieren" -#: stock/templates/stock/item.html:274 +#: stock/templates/stock/item.html:264 msgid "Delete all test results for this stock item" msgstr "Alle Testergebnisse für diesen Lagerartikel löschen" -#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1698 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1701 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" @@ -9366,17 +9551,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:1821 +#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1824 msgid "Count stock" msgstr "Bestand zählen" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1806 msgid "Add stock" msgstr "Bestand hinzufügen" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1815 msgid "Remove stock" msgstr "Bestand entfernen" @@ -9385,12 +9570,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:1830 +#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1833 msgid "Transfer stock" msgstr "Bestand verschieben" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1884 +#: templates/js/translated/stock.js:1887 msgid "Assign to customer" msgstr "Kunden zuweisen" @@ -9431,7 +9616,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:2121 templates/navbar.html:38 +#: templates/js/translated/build.js:2123 templates/navbar.html:38 msgid "Build" msgstr "Bauauftrag" @@ -9497,13 +9682,13 @@ msgid "Available Quantity" msgstr "Verfügbare Menge" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2378 +#: templates/js/translated/build.js:2380 msgid "No location set" msgstr "Kein Lagerort gesetzt" #: stock/templates/stock/item_base.html:413 msgid "Tests" -msgstr "" +msgstr "Tests" #: stock/templates/stock/item_base.html:419 msgid "This stock item has not passed all required tests" @@ -9528,40 +9713,40 @@ msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab" msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" -#: stock/templates/stock/item_base.html:507 -#: templates/js/translated/stock.js:1951 +#: stock/templates/stock/item_base.html:504 +#: templates/js/translated/stock.js:1952 msgid "stock item" msgstr "Lagerartikel" -#: stock/templates/stock/item_base.html:532 +#: stock/templates/stock/item_base.html:527 msgid "Edit Stock Status" msgstr "Lagerstatus bearbeiten" -#: stock/templates/stock/item_base.html:541 +#: stock/templates/stock/item_base.html:536 msgid "Stock Item QR Code" msgstr "Lagerartikel QR-Code" -#: stock/templates/stock/item_base.html:552 +#: stock/templates/stock/item_base.html:547 msgid "Link Barcode to Stock Item" msgstr "Barcode mit Lagerartikel verknüpfen" -#: stock/templates/stock/item_base.html:616 +#: stock/templates/stock/item_base.html:611 msgid "Select one of the part variants listed below." msgstr "Wählen Sie eine der unten aufgeführten Teilvarianten aus." -#: stock/templates/stock/item_base.html:619 +#: stock/templates/stock/item_base.html:614 msgid "Warning" msgstr "Warnung" -#: stock/templates/stock/item_base.html:620 +#: stock/templates/stock/item_base.html:615 msgid "This action cannot be easily undone" msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden" -#: stock/templates/stock/item_base.html:628 +#: stock/templates/stock/item_base.html:623 msgid "Convert Stock Item" msgstr "Lagerartikel umwandeln" -#: stock/templates/stock/item_base.html:662 +#: stock/templates/stock/item_base.html:657 msgid "Return to Stock" msgstr "Zurück ins Lager" @@ -9625,28 +9810,32 @@ msgstr "Standortbesitzer" 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:217 +#: stock/templates/stock/location.html:176 +msgid "Location Type" +msgstr "Lagerort Typ" + +#: stock/templates/stock/location.html:226 msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" -#: stock/templates/stock/location.html:218 +#: stock/templates/stock/location.html:227 msgid "New Location" msgstr "Neuer Lagerort" -#: stock/templates/stock/location.html:287 +#: stock/templates/stock/location.html:297 #: templates/js/translated/stock.js:2572 msgid "stock location" msgstr "Lagerort" -#: stock/templates/stock/location.html:315 +#: stock/templates/stock/location.html:319 msgid "Scanned stock container into this location" msgstr "Lagerbehälter an diesen Ort eingescannt" -#: stock/templates/stock/location.html:388 +#: stock/templates/stock/location.html:392 msgid "Stock Location QR Code" msgstr "Lagerort QR-Code" -#: stock/templates/stock/location.html:399 +#: stock/templates/stock/location.html:403 msgid "Link Barcode to Stock Location" msgstr "Barcode mit Lagerort verknüpfen" @@ -9718,7 +9907,7 @@ msgstr "Die Seite ist derzeit in Wartung und sollte bald wieder verfügbar sein! #: templates/InvenTree/index.html:7 msgid "Index" -msgstr "" +msgstr "Index" #: templates/InvenTree/index.html:39 msgid "Subscribed Parts" @@ -9872,14 +10061,14 @@ msgstr "Anmeldeeinstellungen" msgid "Outgoing email has not been configured. Some login and sign-up features may not work correctly!" msgstr "Ausgehende E-Mails wurde nicht konfiguriert. Einige Anmelde- und Anmeldefunktionen funktionieren möglicherweise nicht korrekt!" -#: templates/InvenTree/settings/login.html:25 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:27 templates/account/signup.html:5 #: templates/socialaccount/signup.html:5 msgid "Signup" msgstr "Anmelden" -#: templates/InvenTree/settings/login.html:34 +#: templates/InvenTree/settings/login.html:36 msgid "Single Sign On" -msgstr "" +msgstr "Single Sign On" #: templates/InvenTree/settings/mixins/settings.html:5 #: templates/InvenTree/settings/settings.html:12 templates/navbar.html:147 @@ -9888,7 +10077,7 @@ msgstr "Einstellungen" #: templates/InvenTree/settings/mixins/urls.html:5 msgid "URLs" -msgstr "" +msgstr "URLs" #: templates/InvenTree/settings/mixins/urls.html:8 #, python-format @@ -9897,7 +10086,7 @@ msgstr "Die Basis-URL für dieses Plugin ist unknown on unknown" msgstr "unbekannt auf unbekanntem" -#: templates/InvenTree/settings/user.html:185 +#: templates/InvenTree/settings/user.html:188 msgid "unknown" msgstr "unbekannt" -#: templates/InvenTree/settings/user.html:189 +#: templates/InvenTree/settings/user.html:192 msgid "IP Address" msgstr "IP Adresse" -#: templates/InvenTree/settings/user.html:190 +#: templates/InvenTree/settings/user.html:193 msgid "Device" msgstr "Gerät" -#: templates/InvenTree/settings/user.html:191 +#: templates/InvenTree/settings/user.html:194 msgid "Last Activity" msgstr "Letzte Aktivität" -#: templates/InvenTree/settings/user.html:204 +#: templates/InvenTree/settings/user.html:207 #, python-format msgid "%(time)s ago (this session)" msgstr "%(time)s vor (diese Sitzung)" -#: templates/InvenTree/settings/user.html:206 +#: templates/InvenTree/settings/user.html:209 #, python-format msgid "%(time)s ago" msgstr "%(time)s vor" -#: templates/InvenTree/settings/user.html:218 +#: templates/InvenTree/settings/user.html:223 msgid "Do you really want to remove the selected email address?" msgstr "Möchten Sie die ausgewählte E-Mail-Adresse wirklich entfernen?" @@ -10505,7 +10694,7 @@ msgstr "Sucheinstellungen" #: templates/InvenTree/settings/user_sso.html:9 msgid "Single Sign On Accounts" -msgstr "" +msgstr "Single Sign On Konten" #: templates/InvenTree/settings/user_sso.html:16 msgid "You can sign in to your account using any of the following third party accounts:" @@ -10569,14 +10758,14 @@ msgstr "Danksagung" #: templates/about.html:79 msgid "Mobile App" -msgstr "" +msgstr "Mobile App" #: templates/about.html:84 msgid "Submit Bug Report" msgstr "Fehlerbericht senden" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:585 +#: templates/js/translated/helpers.js:589 msgid "copy to clipboard" msgstr "In die Zwischenablage kopieren" @@ -10607,26 +10796,26 @@ msgstr "Bestätigen" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "Dieser E-Mail Bestätigungslink ist abgelaufen oder ungültig. Bitte fordern Sie eine neue E-Mail Bestätigung an." -#: templates/account/login.html:6 templates/account/login.html:17 -#: templates/account/login.html:38 templates/socialaccount/login.html:5 +#: templates/account/login.html:6 templates/account/login.html:19 +#: templates/account/login.html:40 templates/socialaccount/login.html:5 msgid "Sign In" msgstr "Einloggen" -#: templates/account/login.html:21 +#: templates/account/login.html:23 msgid "Not a member?" msgstr "Kein Mitglied?" -#: templates/account/login.html:23 templates/account/signup.html:11 +#: templates/account/login.html:25 templates/account/signup.html:11 #: templates/account/signup.html:22 templates/socialaccount/signup.html:8 #: templates/socialaccount/signup.html:23 msgid "Sign Up" msgstr "Anmelden" -#: templates/account/login.html:45 +#: templates/account/login.html:47 msgid "Forgot Password?" msgstr "Passwort vergessen?" -#: templates/account/login.html:53 +#: templates/account/login.html:55 msgid "or log in with" msgstr "oder melden Sie sich mit" @@ -10640,7 +10829,7 @@ msgid "Are you sure you want to sign out?" msgstr "Möchten Sie sich wirklich abmelden?" #: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35 -#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:44 +#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:45 msgid "Return to Site" msgstr "Zurück zur Seite" @@ -10754,15 +10943,19 @@ msgstr "Schritt 1" msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." msgstr "Scannen Sie den QR-Code unten mit einem Token-Generator Ihrer Wahl (z.B. Google Authenticator)." -#: templates/allauth_2fa/setup.html:23 +#: templates/allauth_2fa/setup.html:20 +msgid "Secret: " +msgstr "" + +#: templates/allauth_2fa/setup.html:24 msgid "Step 2" msgstr "Schritt 2" -#: templates/allauth_2fa/setup.html:27 +#: templates/allauth_2fa/setup.html:28 msgid "Input a token generated by the app:" msgstr "Geben Sie das von der App generierte Token ein:" -#: templates/allauth_2fa/setup.html:37 +#: templates/allauth_2fa/setup.html:38 msgid "Verify" msgstr "Überprüfen" @@ -10827,7 +11020,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:2557 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2556 msgid "Required Quantity" msgstr "Benötigte Menge" @@ -10841,7 +11034,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:3218 +#: templates/js/translated/part.js:3219 msgid "Minimum Quantity" msgstr "Mindestmenge" @@ -10929,27 +11122,27 @@ msgstr "Anhang löschen" msgid "Delete attachments" msgstr "Anhänge löschen" -#: templates/js/translated/attachment.js:253 +#: templates/js/translated/attachment.js:260 msgid "Attachment actions" msgstr "Anhang-Aktionen" -#: templates/js/translated/attachment.js:275 +#: templates/js/translated/attachment.js:294 msgid "No attachments found" msgstr "Keine Anhänge gefunden" -#: templates/js/translated/attachment.js:315 +#: templates/js/translated/attachment.js:334 msgid "Edit Attachment" msgstr "Anhänge bearbeiten" -#: templates/js/translated/attachment.js:346 +#: templates/js/translated/attachment.js:365 msgid "Upload Date" msgstr "Datum hochgeladen" -#: templates/js/translated/attachment.js:366 +#: templates/js/translated/attachment.js:385 msgid "Edit attachment" msgstr "Anhang bearbeiten" -#: templates/js/translated/attachment.js:374 +#: templates/js/translated/attachment.js:393 msgid "Delete attachment" msgstr "Anhang löschen" @@ -11006,7 +11199,7 @@ msgstr "Dadurch wird der Link zu dem zugehörigen Barcode entfernt" msgid "Unlink" msgstr "Verknüpfung aufheben" -#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155 +#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1158 msgid "Remove stock item" msgstr "Lagerartikel entfernen" @@ -11196,7 +11389,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:2501 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2500 msgid "Variant stock allowed" msgstr "Alternatives Lager erlaubt" @@ -11216,30 +11409,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:2622 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2621 msgid "External stock" msgstr "Externes Lager" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2596 -#: templates/js/translated/sales_order.js:1910 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2595 +#: 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:2600 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2599 msgid "Includes variant and substitute stock" msgstr "Alternatives Lager und Ersatzteillager einschließen" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2602 -#: templates/js/translated/part.js:1256 -#: templates/js/translated/sales_order.js:1907 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2601 +#: templates/js/translated/part.js:1257 +#: 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:2604 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2603 msgid "Includes substitute stock" msgstr "Ersatzteillager einschließen" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2587 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2586 msgid "Consumable item" msgstr "Verbrauchsartikel" @@ -11271,7 +11464,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:2486 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2485 msgid "Required Part" msgstr "Benötigtes Teil" @@ -11440,207 +11633,207 @@ msgstr "Endprodukte entfernen" msgid "No build order allocations found" msgstr "Keine Allokationen für Bauauftrag gefunden" -#: templates/js/translated/build.js:989 templates/js/translated/build.js:2342 +#: templates/js/translated/build.js:991 templates/js/translated/build.js:2344 msgid "Allocated Quantity" msgstr "Zugewiesene Menge" -#: templates/js/translated/build.js:1003 +#: templates/js/translated/build.js:1005 msgid "Location not specified" msgstr "Standort nicht angegeben" -#: templates/js/translated/build.js:1025 +#: templates/js/translated/build.js:1027 msgid "Complete outputs" msgstr "Endprodukte fertigstellen" -#: templates/js/translated/build.js:1043 +#: templates/js/translated/build.js:1045 msgid "Scrap outputs" msgstr "Ausschuss" -#: templates/js/translated/build.js:1061 +#: templates/js/translated/build.js:1063 msgid "Delete outputs" msgstr "Endprodukte löschen" -#: templates/js/translated/build.js:1115 +#: templates/js/translated/build.js:1116 msgid "build output" msgstr "Endprodukt" -#: templates/js/translated/build.js:1116 +#: templates/js/translated/build.js:1117 msgid "build outputs" msgstr "Endprodukte" -#: templates/js/translated/build.js:1120 +#: templates/js/translated/build.js:1121 msgid "Build output actions" msgstr "Endprodukt-Aktionen" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "No active build outputs found" msgstr "Keine aktiven Endprodukte gefunden" -#: templates/js/translated/build.js:1387 +#: templates/js/translated/build.js:1390 msgid "Allocated Lines" msgstr "Zugewiesene Positionen" -#: templates/js/translated/build.js:1401 +#: templates/js/translated/build.js:1404 msgid "Required Tests" msgstr "Erforderliche Prüfungen" -#: templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:1576 #: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1171 +#: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "Teile auswählen" -#: templates/js/translated/build.js:1574 -#: templates/js/translated/sales_order.js:1172 +#: templates/js/translated/build.js:1577 +#: 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:1637 -#: templates/js/translated/sales_order.js:1121 +#: templates/js/translated/build.js:1640 +#: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: templates/js/translated/build.js:1714 +#: templates/js/translated/build.js:1717 msgid "All Parts Allocated" msgstr "Alle Teile zugeordnet" -#: templates/js/translated/build.js:1715 +#: templates/js/translated/build.js:1718 msgid "All selected parts have been fully allocated" msgstr "Alle ausgewählten Teile wurden vollständig zugeordnet" -#: templates/js/translated/build.js:1729 -#: templates/js/translated/sales_order.js:1186 +#: templates/js/translated/build.js:1732 +#: 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:1757 +#: templates/js/translated/build.js:1760 msgid "Allocate Stock Items to Build Order" msgstr "Lagerartikel für Bauauftrag zuweisen" -#: templates/js/translated/build.js:1768 -#: templates/js/translated/sales_order.js:1283 +#: templates/js/translated/build.js:1771 +#: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "Keine passenden Lagerstandorte" -#: templates/js/translated/build.js:1841 -#: templates/js/translated/sales_order.js:1362 +#: templates/js/translated/build.js:1844 +#: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "Keine passenden Lagerartikel" -#: templates/js/translated/build.js:1938 +#: templates/js/translated/build.js:1941 msgid "Automatic Stock Allocation" msgstr "Automatische Lagerzuordnung" -#: templates/js/translated/build.js:1939 +#: templates/js/translated/build.js:1942 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:1941 +#: templates/js/translated/build.js:1944 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:1942 +#: templates/js/translated/build.js:1945 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:1943 +#: templates/js/translated/build.js:1946 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:1974 +#: templates/js/translated/build.js:1977 msgid "Allocate Stock Items" msgstr "Lagerartikel zuordnen" -#: templates/js/translated/build.js:2080 +#: templates/js/translated/build.js:2082 msgid "No builds matching query" msgstr "Keine Bauaufträge zur Suchanfrage" -#: templates/js/translated/build.js:2115 templates/js/translated/build.js:2480 -#: templates/js/translated/forms.js:2155 templates/js/translated/forms.js:2171 +#: templates/js/translated/build.js:2117 templates/js/translated/build.js:2479 +#: templates/js/translated/forms.js:2163 templates/js/translated/forms.js:2179 #: templates/js/translated/part.js:2316 templates/js/translated/part.js:2742 -#: templates/js/translated/stock.js:1982 templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:1983 templates/js/translated/stock.js:2710 msgid "Select" msgstr "Auswählen" -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2131 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:2175 -msgid "Progress" -msgstr "Fortschritt" - -#: templates/js/translated/build.js:2211 templates/js/translated/stock.js:3042 +#: templates/js/translated/build.js:2213 templates/js/translated/stock.js:3042 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/translated/build.js:2387 -#: templates/js/translated/sales_order.js:1646 +#: templates/js/translated/build.js:2389 +#: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: templates/js/translated/build.js:2388 -#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/build.js:2390 +#: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2405 msgid "Edit Allocation" msgstr "Zuordnung bearbeiten" -#: templates/js/translated/build.js:2415 +#: templates/js/translated/build.js:2417 msgid "Remove Allocation" msgstr "Zuordnung entfernen" -#: templates/js/translated/build.js:2456 +#: templates/js/translated/build.js:2455 msgid "build line" msgstr "Bauauftragsposition" -#: templates/js/translated/build.js:2457 +#: templates/js/translated/build.js:2456 msgid "build lines" msgstr "Bauauftragspositionen" -#: templates/js/translated/build.js:2475 +#: templates/js/translated/build.js:2474 msgid "No build lines found" msgstr "Keine Bauauftragspositionen gefunden" -#: templates/js/translated/build.js:2505 templates/js/translated/part.js:790 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/build.js:2504 templates/js/translated/part.js:791 +#: templates/js/translated/part.js:1203 msgid "Trackable part" msgstr "Nachverfolgbares Teil" -#: templates/js/translated/build.js:2540 +#: templates/js/translated/build.js:2539 msgid "Unit Quantity" msgstr "Menge" -#: templates/js/translated/build.js:2592 -#: templates/js/translated/sales_order.js:1915 +#: templates/js/translated/build.js:2591 +#: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "Ausreichender Bestand vorhanden" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2646 msgid "Consumable Item" msgstr "Verbrauchsartikel" -#: templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2653 msgid "Tracked item" msgstr "Verfolgtes Objekt" -#: templates/js/translated/build.js:2659 -#: templates/js/translated/sales_order.js:2016 +#: templates/js/translated/build.js:2654 +msgid "Allocate tracked items against individual build outputs" +msgstr "Zuweisung von nachverfolgbaren Artikeln zu einzelnen Bauprodukten" + +#: templates/js/translated/build.js:2662 +#: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:2664 templates/js/translated/stock.js:1865 +#: templates/js/translated/build.js:2667 templates/js/translated/stock.js:1868 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/translated/build.js:2668 -#: templates/js/translated/sales_order.js:2010 +#: templates/js/translated/build.js:2671 +#: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "Bestand zuweisen" -#: templates/js/translated/build.js:2672 +#: templates/js/translated/build.js:2675 msgid "Remove stock allocation" msgstr "Bestands-Zuordnung löschen" @@ -11787,7 +11980,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:2244 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2245 msgid "Order parts" msgstr "Teile bestellen" @@ -11804,34 +11997,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:798 -#: templates/js/translated/part.js:1210 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:799 +#: templates/js/translated/part.js:1211 msgid "Template part" msgstr "Vorlagenteil" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 -#: templates/js/translated/part.js:1214 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:803 +#: templates/js/translated/part.js:1215 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1464 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1465 msgid "No parameters found" msgstr "Keine Parameter gefunden" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1527 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1528 msgid "Edit parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1528 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1529 msgid "Delete parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1433 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1434 msgid "Edit Parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1549 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1550 msgid "Delete Parameter" msgstr "Parameter löschen" @@ -11886,12 +12079,12 @@ msgid "Delete price break" msgstr "Staffelpreis löschen" #: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:672 +#: templates/js/translated/filters.js:667 msgid "true" msgstr "wahr" #: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:673 +#: templates/js/translated/filters.js:668 msgid "false" msgstr "falsch" @@ -11923,7 +12116,7 @@ msgstr "Neuen Filter hinzufügen" msgid "Clear all filters" msgstr "Alle Filter entfernen" -#: templates/js/translated/filters.js:582 +#: templates/js/translated/filters.js:577 msgid "Create filter" msgstr "Filter erstellen" @@ -11956,32 +12149,32 @@ msgstr "Dieses Formular offen lassen" msgid "Enter a valid number" msgstr "Gib eine gültige Nummer ein" -#: templates/js/translated/forms.js:1473 templates/modals.html:19 +#: templates/js/translated/forms.js:1477 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Fehler in Formular" -#: templates/js/translated/forms.js:1971 +#: templates/js/translated/forms.js:1975 msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:2275 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2285 templates/js/translated/search.js:239 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:2489 +#: templates/js/translated/forms.js:2499 msgid "Clear input" msgstr "Eingabe löschen" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "File Column" msgstr "Dateispalte" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "Field Name" msgstr "Feldname" -#: templates/js/translated/forms.js:3103 +#: templates/js/translated/forms.js:3113 msgid "Select Columns" msgstr "Spalten auswählen" @@ -12005,51 +12198,15 @@ msgstr "Falsch" msgid "No parts required for builds" msgstr "Keine Ersatzteile für Montage erforderlich" -#: templates/js/translated/label.js:53 templates/js/translated/report.js:123 +#: templates/js/translated/label.js:55 templates/js/translated/report.js:38 msgid "Select Items" msgstr "Elemente auswählen" -#: templates/js/translated/label.js:54 +#: templates/js/translated/label.js:56 templates/js/translated/report.js:39 msgid "No items selected for printing" msgstr "Keine Elemente zum Drucken ausgewählt" -#: templates/js/translated/label.js:72 -msgid "No Labels Found" -msgstr "Keine Etiketten gefunden" - -#: templates/js/translated/label.js:73 -msgid "No label templates found which match the selected items" -msgstr "Keine Berichtvorlagen für ausgewählte Bestellungen gefunden" - -#: templates/js/translated/label.js:97 -msgid "selected" -msgstr "ausgewählt" - -#: templates/js/translated/label.js:133 -msgid "Printing Options" -msgstr "Druckoptionen" - -#: templates/js/translated/label.js:148 -msgid "Print label" -msgstr "Etikett drucken" - -#: templates/js/translated/label.js:148 -msgid "Print labels" -msgstr "Etiketten drucken" - -#: templates/js/translated/label.js:149 -msgid "Print" -msgstr "Drucken" - -#: templates/js/translated/label.js:155 -msgid "Select label template" -msgstr "Etiketten-Vorlage auswählen" - -#: templates/js/translated/label.js:168 -msgid "Select plugin" -msgstr "Plugin auswählen" - -#: templates/js/translated/label.js:187 +#: templates/js/translated/label.js:150 msgid "Labels sent to printer" msgstr "Etiketten an den Drucker senden" @@ -12118,9 +12275,9 @@ msgstr "Keine Nachrichten gefunden" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1604 +#: templates/js/translated/part.js:1605 msgid "ID" -msgstr "" +msgstr "ID" #: templates/js/translated/notification.js:52 msgid "Age" @@ -12167,7 +12324,7 @@ msgid "Delete Line" msgstr "Position löschen" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:1991 +#: templates/js/translated/purchase_order.js:1990 msgid "No line items found" msgstr "Keine Postionen gefunden" @@ -12199,249 +12356,249 @@ msgstr "Duplizierungsoptionen für Teile" msgid "Add Part Category" msgstr "Teil-Kategorie hinzufügen" -#: templates/js/translated/part.js:308 +#: templates/js/translated/part.js:309 msgid "Parent part category" msgstr "Übergeordnete Teilkategorie" -#: templates/js/translated/part.js:332 templates/js/translated/stock.js:175 +#: templates/js/translated/part.js:333 templates/js/translated/stock.js:175 msgid "Icon (optional) - Explore all available icons on" msgstr "Icon (optional) - alle verfügbaren Icons einsehbar auf" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Category" msgstr "Teil-Kategorie hinzufügen" -#: templates/js/translated/part.js:355 +#: templates/js/translated/part.js:356 msgid "Create new category after this one" msgstr "Neue Kategorie nach dieser Kategorie erstellen" -#: templates/js/translated/part.js:356 +#: templates/js/translated/part.js:357 msgid "Part category created" msgstr "Artikelkategorie erstellt" -#: templates/js/translated/part.js:370 +#: templates/js/translated/part.js:371 msgid "Edit Part Category" msgstr "Teilekategorie bearbeiten" -#: templates/js/translated/part.js:383 +#: templates/js/translated/part.js:384 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:388 +#: templates/js/translated/part.js:389 msgid "Move to parent category" msgstr "In übergeordnete Kategorie verschieben" -#: templates/js/translated/part.js:397 +#: templates/js/translated/part.js:398 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: templates/js/translated/part.js:401 +#: templates/js/translated/part.js:402 msgid "Action for parts in this category" msgstr "Aktion für Teile in dieser Kategorie" -#: templates/js/translated/part.js:406 +#: templates/js/translated/part.js:407 msgid "Action for child categories" msgstr "Aktion für Unterkategorien" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:431 msgid "Create Part" -msgstr "" - -#: templates/js/translated/part.js:432 -msgid "Create another part after this one" -msgstr "" +msgstr "Teil erstellen" #: templates/js/translated/part.js:433 +msgid "Create another part after this one" +msgstr "Weiteres Teil nach diesem erstellen" + +#: templates/js/translated/part.js:434 msgid "Part created successfully" -msgstr "" +msgstr "Teil erfolgreich angelegt" -#: templates/js/translated/part.js:461 +#: templates/js/translated/part.js:462 msgid "Edit Part" -msgstr "" +msgstr "Teil bearbeiten" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:464 msgid "Part edited" -msgstr "" +msgstr "Teil bearbeitet" -#: templates/js/translated/part.js:474 +#: templates/js/translated/part.js:475 msgid "Create Part Variant" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Active Part" -msgstr "" +msgstr "Teil-Variante anlegen" #: templates/js/translated/part.js:532 +msgid "Active Part" +msgstr "Aktives Teil" + +#: templates/js/translated/part.js:533 msgid "Part cannot be deleted as it is currently active" -msgstr "" +msgstr "Teil kann nicht gelöscht werden, da es derzeit aktiv ist" -#: templates/js/translated/part.js:546 +#: templates/js/translated/part.js:547 msgid "Deleting this part cannot be reversed" -msgstr "" - -#: templates/js/translated/part.js:548 -msgid "Any stock items for this part will be deleted" -msgstr "" +msgstr "Das Löschen dieses Teils kann nicht rückgängig gemacht werden" #: templates/js/translated/part.js:549 -msgid "This part will be removed from any Bills of Material" -msgstr "" +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:550 +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:551 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:557 +#: templates/js/translated/part.js:558 msgid "Delete Part" msgstr "Teil löschen" -#: templates/js/translated/part.js:593 +#: templates/js/translated/part.js:594 msgid "You are subscribed to notifications for this item" msgstr "Du hast Benachrichtigungen zu diesem Artikel abonniert" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:596 msgid "You have subscribed to notifications for this item" msgstr "Du hast Benachrichtigungen zu diesem Artikel abonniert" -#: templates/js/translated/part.js:600 +#: templates/js/translated/part.js:601 msgid "Subscribe to notifications for this item" msgstr "Benachrichtigungen zu diesem Artikel abonnieren" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:603 msgid "You have unsubscribed to notifications for this item" msgstr "Du erhältst keine Benachrichtigungen zu diesem Artikel mehr" -#: templates/js/translated/part.js:619 +#: templates/js/translated/part.js:620 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:629 +#: templates/js/translated/part.js:630 msgid "Validate Bill of Materials" msgstr "Stückliste prüfen" -#: templates/js/translated/part.js:632 +#: templates/js/translated/part.js:633 msgid "Validated Bill of Materials" msgstr "Überprüfte Stückliste" -#: templates/js/translated/part.js:657 +#: templates/js/translated/part.js:658 msgid "Copy Bill of Materials" msgstr "Stückliste kopieren" -#: templates/js/translated/part.js:685 +#: templates/js/translated/part.js:686 #: templates/js/translated/table_filters.js:747 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/translated/part.js:688 +#: templates/js/translated/part.js:689 msgid "No stock available" msgstr "Kein Lagerbestand verfügbar" -#: templates/js/translated/part.js:748 +#: templates/js/translated/part.js:749 msgid "Demand" msgstr "Bedarf" -#: templates/js/translated/part.js:771 +#: templates/js/translated/part.js:772 msgid "Unit" msgstr "Einheit" -#: templates/js/translated/part.js:794 templates/js/translated/part.js:1206 +#: templates/js/translated/part.js:795 templates/js/translated/part.js:1207 msgid "Virtual part" msgstr "Virtuelles Teil" -#: templates/js/translated/part.js:806 +#: templates/js/translated/part.js:807 msgid "Subscribed part" msgstr "Abonniertes Teil" -#: templates/js/translated/part.js:810 +#: templates/js/translated/part.js:811 msgid "Salable part" msgstr "Verkäufliches Teil" -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 msgid "Schedule generation of a new stocktake report." msgstr "Erstellung eines neuen Inventurberichts planen." -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 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:897 +#: templates/js/translated/part.js:898 msgid "Generate Stocktake Report" msgstr "Inventurbericht erstellen" -#: templates/js/translated/part.js:901 +#: templates/js/translated/part.js:902 msgid "Stocktake report scheduled" msgstr "Inventurbericht geplant" -#: templates/js/translated/part.js:1050 +#: templates/js/translated/part.js:1051 msgid "No stocktake information available" msgstr "Keine Inventurinformationen verfügbar" -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1144 +#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1145 msgid "Edit Stocktake Entry" msgstr "Inventureintrag bearbeiten" -#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1154 +#: templates/js/translated/part.js:1113 templates/js/translated/part.js:1155 msgid "Delete Stocktake Entry" msgstr "Inventureintrag löschen" -#: templates/js/translated/part.js:1281 +#: templates/js/translated/part.js:1282 msgid "No variants found" msgstr "Keine Varianten gefunden" -#: templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:1600 msgid "No part parameter templates found" msgstr "Keine Teileparametervorlagen gefunden" -#: templates/js/translated/part.js:1662 +#: templates/js/translated/part.js:1663 msgid "Edit Part Parameter Template" msgstr "Teileparametervorlage bearbeiten" -#: templates/js/translated/part.js:1674 +#: templates/js/translated/part.js:1675 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:1682 +#: templates/js/translated/part.js:1683 msgid "Delete Part Parameter Template" msgstr "Teileparametervorlage löschen" -#: templates/js/translated/part.js:1716 -#: templates/js/translated/purchase_order.js:1655 +#: templates/js/translated/part.js:1717 +#: templates/js/translated/purchase_order.js:1654 msgid "No purchase orders found" msgstr "Keine Bestellungen gefunden" -#: templates/js/translated/part.js:1860 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/return_order.js:756 -#: templates/js/translated/sales_order.js:1875 +#: templates/js/translated/part.js:1861 +#: templates/js/translated/purchase_order.js:2153 +#: templates/js/translated/return_order.js:755 +#: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "Diese Position ist überfällig" -#: templates/js/translated/part.js:1906 -#: templates/js/translated/purchase_order.js:2221 +#: templates/js/translated/part.js:1907 +#: templates/js/translated/purchase_order.js:2220 msgid "Receive line item" msgstr "Position empfangen" -#: templates/js/translated/part.js:1969 +#: templates/js/translated/part.js:1970 msgid "Delete part relationship" msgstr "Teilebeziehung löschen" -#: templates/js/translated/part.js:1991 +#: templates/js/translated/part.js:1992 msgid "Delete Part Relationship" msgstr "Teilebeziehung löschen" -#: templates/js/translated/part.js:2079 templates/js/translated/part.js:2506 +#: templates/js/translated/part.js:2080 templates/js/translated/part.js:2506 msgid "No parts found" msgstr "Keine Teile gefunden" -#: templates/js/translated/part.js:2200 +#: templates/js/translated/part.js:2201 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:2205 +#: templates/js/translated/part.js:2206 msgid "Set Part Category" msgstr "Teilekategorie auswählen" -#: templates/js/translated/part.js:2235 +#: templates/js/translated/part.js:2236 msgid "Set category" msgstr "Kategorie wählen" @@ -12482,158 +12639,158 @@ msgstr "Unterkategorien laden" msgid "Subscribed category" msgstr "Abonnierte Kategorie" -#: templates/js/translated/part.js:2864 +#: templates/js/translated/part.js:2865 msgid "No test templates matching query" msgstr "Keine passenden Testvorlagen gefunden" -#: templates/js/translated/part.js:2886 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2887 templates/js/translated/search.js:342 msgid "results" msgstr "Ergebnisse" -#: templates/js/translated/part.js:2936 templates/js/translated/stock.js:1453 +#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1456 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1454 -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/part.js:2938 templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1731 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/translated/part.js:2941 +#: templates/js/translated/part.js:2942 msgid "This test is defined for a parent part" msgstr "Dieser Test ist für ein übergeordnetes Teil definiert" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2958 msgid "Edit Test Result Template" msgstr "Vorlage für Testergebnis bearbeiten" -#: templates/js/translated/part.js:2971 +#: templates/js/translated/part.js:2972 msgid "Delete Test Result Template" msgstr "Vorlage für Testergebnis löschen" -#: templates/js/translated/part.js:3050 templates/js/translated/part.js:3051 +#: templates/js/translated/part.js:3051 templates/js/translated/part.js:3052 msgid "No date specified" msgstr "Kein Datum angegeben" -#: templates/js/translated/part.js:3053 +#: templates/js/translated/part.js:3054 msgid "Specified date is in the past" msgstr "Das angegebene Datum liegt in der Vergangenheit" -#: templates/js/translated/part.js:3059 +#: templates/js/translated/part.js:3060 msgid "Speculative" msgstr "Spekulativ" -#: templates/js/translated/part.js:3109 +#: templates/js/translated/part.js:3110 msgid "No scheduling information available for this part" -msgstr "" +msgstr "Keine Zeitplanung für dieses Teil vorhanden" -#: templates/js/translated/part.js:3115 +#: templates/js/translated/part.js:3116 msgid "Error fetching scheduling information for this part" -msgstr "" +msgstr "Fehler beim Abrufen der Zeitplanungsinformationen für dieses Teil" -#: templates/js/translated/part.js:3211 +#: templates/js/translated/part.js:3212 msgid "Scheduled Stock Quantities" -msgstr "" +msgstr "Geplante Lagermengen" -#: templates/js/translated/part.js:3227 +#: templates/js/translated/part.js:3228 msgid "Maximum Quantity" msgstr "Maximale Menge" -#: templates/js/translated/part.js:3272 +#: templates/js/translated/part.js:3273 msgid "Minimum Stock Level" -msgstr "" +msgstr "Minimaler Lagerbestand" #: templates/js/translated/plugin.js:46 msgid "No plugins found" -msgstr "" +msgstr "Keine Plugins gefunden" #: templates/js/translated/plugin.js:58 msgid "This plugin is no longer installed" -msgstr "" +msgstr "Dieses Plugin ist nicht mehr installiert" #: templates/js/translated/plugin.js:60 msgid "This plugin is active" -msgstr "" +msgstr "Dieses Plugin ist aktiv" #: templates/js/translated/plugin.js:62 msgid "This plugin is installed but not active" -msgstr "" +msgstr "Dieses Plugin ist installiert, aber nicht aktiv" #: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:186 msgid "Disable Plugin" -msgstr "" +msgstr "Plugin deaktivieren" #: templates/js/translated/plugin.js:119 templates/js/translated/plugin.js:186 msgid "Enable Plugin" -msgstr "" +msgstr "Plugin aktivieren" #: templates/js/translated/plugin.js:158 msgid "The Plugin was installed" -msgstr "" +msgstr "Das Plugin wurde installiert" #: templates/js/translated/plugin.js:177 msgid "Are you sure you want to enable this plugin?" -msgstr "" +msgstr "Soll dieses Plugin aktiviert werden?" #: templates/js/translated/plugin.js:181 msgid "Are you sure you want to disable this plugin?" -msgstr "" +msgstr "Soll dieses Plugin deaktiviert werden?" #: templates/js/translated/plugin.js:189 msgid "Enable" -msgstr "" +msgstr "Aktivieren" #: templates/js/translated/plugin.js:189 msgid "Disable" -msgstr "" +msgstr "Deaktivieren" #: templates/js/translated/plugin.js:203 msgid "Plugin updated" -msgstr "" +msgstr "Plugin aktualisiert" #: templates/js/translated/pricing.js:159 msgid "Error fetching currency data" -msgstr "" +msgstr "Fehler beim Abrufen der Währungsdaten" #: templates/js/translated/pricing.js:321 msgid "No BOM data available" -msgstr "" +msgstr "Keine Stücklisten-Daten verfügbar" #: templates/js/translated/pricing.js:463 msgid "No supplier pricing data available" -msgstr "" +msgstr "Keine Zulieferer-Preise verfügbar" #: templates/js/translated/pricing.js:572 msgid "No price break data available" -msgstr "" +msgstr "Keine Staffelpreisdaten verfügbar" #: templates/js/translated/pricing.js:755 msgid "No purchase history data available" -msgstr "" +msgstr "Keine Einkaufshistorie verfügbar" #: templates/js/translated/pricing.js:791 msgid "Purchase Price History" -msgstr "" +msgstr "Kaufpreisverlauf" #: templates/js/translated/pricing.js:894 msgid "No sales history data available" -msgstr "" +msgstr "Keine Verkaufshistorie verfügbar" #: templates/js/translated/pricing.js:916 msgid "Sale Price History" -msgstr "" +msgstr "Verkaufspreisverlauf" #: templates/js/translated/pricing.js:1005 msgid "No variant data available" -msgstr "" +msgstr "Keine Variantendaten verfügbar" #: templates/js/translated/pricing.js:1045 msgid "Variant Part" -msgstr "" +msgstr "Variantenteil" #: templates/js/translated/purchase_order.js:169 msgid "Select purchase order to duplicate" -msgstr "" +msgstr "Bestellung zum Duplizieren auswählen" #: templates/js/translated/purchase_order.js:176 msgid "Duplicate Line Items" @@ -12653,21 +12810,21 @@ msgstr "Zusätzliche Positionen der ausgewählten Bestellung duplizieren" #: templates/js/translated/purchase_order.js:206 msgid "Edit Purchase Order" -msgstr "" +msgstr "Bestellung bearbeiten" #: templates/js/translated/purchase_order.js:223 msgid "Duplication Options" -msgstr "" +msgstr "Duplizierungsoptionen" #: templates/js/translated/purchase_order.js:431 msgid "Complete Purchase Order" -msgstr "" +msgstr "Bestellung abschließen" #: templates/js/translated/purchase_order.js:448 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:552 msgid "Mark this order as complete?" -msgstr "" +msgstr "Diese Bestellung als vollständig markieren?" #: templates/js/translated/purchase_order.js:454 msgid "All line items have been received" @@ -12678,21 +12835,20 @@ msgid "This order has line items which have not been marked as received." msgstr "Diese Bestellung enthält Positionen, die nicht als empfangen markiert wurden." #: templates/js/translated/purchase_order.js:460 -#: templates/js/translated/sales_order.js:514 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "Fertigstellen dieser Bestellung bedeutet, dass sie ihre Positionen nicht länger bearbeiten können." #: templates/js/translated/purchase_order.js:483 msgid "Cancel Purchase Order" -msgstr "" +msgstr "Bestellung stornieren" #: templates/js/translated/purchase_order.js:488 msgid "Are you sure you wish to cancel this purchase order?" -msgstr "" +msgstr "Soll die Bestellung storniert werden?" #: templates/js/translated/purchase_order.js:494 msgid "This purchase order can not be cancelled" -msgstr "" +msgstr "Diese Bestellung kann nicht storniert werden" #: templates/js/translated/purchase_order.js:515 #: templates/js/translated/return_order.js:164 @@ -12701,11 +12857,11 @@ msgstr "Nachdem diese Bestellung platziert ist, können die Positionen nicht lä #: templates/js/translated/purchase_order.js:520 msgid "Issue Purchase Order" -msgstr "" +msgstr "Bestellung aufgeben" #: templates/js/translated/purchase_order.js:612 msgid "At least one purchaseable part must be selected" -msgstr "" +msgstr "Mindestens ein kaufbares Teil muss ausgewählt werden" #: templates/js/translated/purchase_order.js:637 msgid "Quantity to order" @@ -12713,15 +12869,15 @@ msgstr "Zu bestellende Menge" #: templates/js/translated/purchase_order.js:646 msgid "New supplier part" -msgstr "" +msgstr "Neues Zuliefererteil" #: templates/js/translated/purchase_order.js:664 msgid "New purchase order" -msgstr "" +msgstr "Neue Bestellung" #: templates/js/translated/purchase_order.js:705 msgid "Add to purchase order" -msgstr "" +msgstr "Zur Bestellung hinzufügen" #: templates/js/translated/purchase_order.js:755 msgid "Merge" @@ -12729,19 +12885,19 @@ msgstr "Zusammenfügen" #: templates/js/translated/purchase_order.js:859 msgid "No matching supplier parts" -msgstr "" +msgstr "Keine passenden Lieferantenteile" #: templates/js/translated/purchase_order.js:878 msgid "No matching purchase orders" -msgstr "" +msgstr "Keine passenden Bestellungen" #: templates/js/translated/purchase_order.js:1073 -#: templates/js/translated/return_order.js:491 +#: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "Positionen auswählen" #: templates/js/translated/purchase_order.js:1074 -#: templates/js/translated/return_order.js:492 +#: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "Mindestens eine Position muss ausgewählt werden" @@ -12755,42 +12911,42 @@ msgstr "Zu erhaltende Menge" #: templates/js/translated/purchase_order.js:1191 msgid "Stock Status" -msgstr "" +msgstr "Bestandsstatus" #: templates/js/translated/purchase_order.js:1205 msgid "Add barcode" -msgstr "" +msgstr "Barcode hinzufügen" #: templates/js/translated/purchase_order.js:1206 msgid "Remove barcode" -msgstr "" +msgstr "Barcode entfernen" #: templates/js/translated/purchase_order.js:1209 msgid "Specify location" -msgstr "" +msgstr "Lagerort angeben" #: templates/js/translated/purchase_order.js:1217 msgid "Add batch code" -msgstr "" +msgstr "Losnummer hinzufügen" #: templates/js/translated/purchase_order.js:1228 msgid "Add serial numbers" -msgstr "" +msgstr "Seriennummern hinzufügen" #: templates/js/translated/purchase_order.js:1280 msgid "Serials" -msgstr "" +msgstr "Seriennummern" #: templates/js/translated/purchase_order.js:1305 msgid "Order Code" -msgstr "" +msgstr "Bestellnummer" #: templates/js/translated/purchase_order.js:1307 msgid "Quantity to Receive" msgstr "Zu erhaltende Menge" #: templates/js/translated/purchase_order.js:1333 -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Confirm receipt of items" msgstr "Empfang der Artikel bestätigen" @@ -12810,133 +12966,118 @@ msgstr "Scanne den Barcode am erhaltenen Artikel (darf nicht mit einem existiere msgid "Invalid barcode data" msgstr "Ungültige Barcode-Daten" -#: templates/js/translated/purchase_order.js:1682 -#: templates/js/translated/return_order.js:286 -#: templates/js/translated/sales_order.js:774 -#: templates/js/translated/sales_order.js:998 +#: templates/js/translated/purchase_order.js:1681 +#: 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:1748 -#: templates/js/translated/return_order.js:354 -#: templates/js/translated/sales_order.js:851 -#: templates/js/translated/sales_order.js:1011 -msgid "Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:1844 +#: templates/js/translated/purchase_order.js:1843 msgid "All selected Line items will be deleted" msgstr "Alle ausgewählten Positionen werden gelöscht" -#: templates/js/translated/purchase_order.js:1862 +#: templates/js/translated/purchase_order.js:1861 msgid "Delete selected Line items?" msgstr "Ausgewählte Positionen löschen?" -#: templates/js/translated/purchase_order.js:1917 -#: templates/js/translated/sales_order.js:2070 +#: templates/js/translated/purchase_order.js:1916 +#: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "Position duplizieren" -#: templates/js/translated/purchase_order.js:1932 -#: templates/js/translated/return_order.js:476 -#: templates/js/translated/return_order.js:669 -#: templates/js/translated/sales_order.js:2083 +#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/return_order.js:475 +#: templates/js/translated/return_order.js:668 +#: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: templates/js/translated/purchase_order.js:1943 -#: templates/js/translated/return_order.js:682 -#: templates/js/translated/sales_order.js:2094 +#: templates/js/translated/purchase_order.js:1942 +#: templates/js/translated/return_order.js:681 +#: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "Position löschen" -#: templates/js/translated/purchase_order.js:2225 -#: templates/js/translated/sales_order.js:2024 +#: templates/js/translated/purchase_order.js:2224 +#: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "Position duplizieren" -#: templates/js/translated/purchase_order.js:2226 -#: templates/js/translated/return_order.js:801 -#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/purchase_order.js:2225 +#: templates/js/translated/return_order.js:800 +#: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "Position bearbeiten" -#: templates/js/translated/purchase_order.js:2227 -#: templates/js/translated/return_order.js:805 -#: templates/js/translated/sales_order.js:2031 +#: templates/js/translated/purchase_order.js:2226 +#: templates/js/translated/return_order.js:804 +#: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "Position löschen" -#: templates/js/translated/report.js:63 -msgid "items selected" +#: templates/js/translated/report.js:49 +msgid "Print Report" msgstr "" -#: templates/js/translated/report.js:71 -msgid "Select Report Template" +#: templates/js/translated/report.js:68 +msgid "Report print successful" msgstr "" -#: templates/js/translated/report.js:86 -msgid "Select Test Report Template" -msgstr "" - -#: templates/js/translated/report.js:140 -msgid "No Reports Found" -msgstr "" - -#: templates/js/translated/report.js:141 -msgid "No report templates found which match the selected items" +#: templates/js/translated/report.js:73 +msgid "Report printing failed" msgstr "" #: templates/js/translated/return_order.js:60 #: templates/js/translated/sales_order.js:86 msgid "Add Customer" -msgstr "" +msgstr "Kunden hinzufügen" #: templates/js/translated/return_order.js:134 msgid "Create Return Order" -msgstr "" +msgstr "Rücksendeauftrag erstellen" #: templates/js/translated/return_order.js:149 msgid "Edit Return Order" -msgstr "" +msgstr "Rücksendeauftrag bearbeiten" #: templates/js/translated/return_order.js:169 msgid "Issue Return Order" -msgstr "" +msgstr "Neuer Rücksendeauftrag" #: templates/js/translated/return_order.js:186 msgid "Are you sure you wish to cancel this Return Order?" -msgstr "" +msgstr "Soll der Rücksendeauftrag storniert werden?" #: templates/js/translated/return_order.js:193 msgid "Cancel Return Order" -msgstr "" +msgstr "Rücksendeauftrag stornieren" #: templates/js/translated/return_order.js:218 msgid "Complete Return Order" -msgstr "" +msgstr "Rücksendeauftrag abschließen" -#: templates/js/translated/return_order.js:266 +#: templates/js/translated/return_order.js:265 msgid "No return orders found" -msgstr "" +msgstr "Kein Rücksendeauftrag gefunden" -#: templates/js/translated/return_order.js:300 -#: templates/js/translated/sales_order.js:788 +#: templates/js/translated/return_order.js:299 +#: templates/js/translated/sales_order.js:824 msgid "Invalid Customer" -msgstr "" +msgstr "Ungültiger Kunde" -#: templates/js/translated/return_order.js:562 +#: templates/js/translated/return_order.js:561 msgid "Receive Return Order Items" -msgstr "" +msgstr "Rücksendeauftragspositionen erhalten" -#: templates/js/translated/return_order.js:693 -#: templates/js/translated/sales_order.js:2231 +#: templates/js/translated/return_order.js:692 +#: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "Keine passenden Positionen gefunden" -#: templates/js/translated/return_order.js:798 +#: templates/js/translated/return_order.js:797 msgid "Mark item as received" -msgstr "" +msgstr "Artikel als empfangen markieren" #: templates/js/translated/sales_order.js:161 msgid "Create Sales Order" @@ -12948,176 +13089,192 @@ msgstr "Auftrag bearbeiten" #: templates/js/translated/sales_order.js:291 msgid "No stock items have been allocated to this shipment" -msgstr "" +msgstr "Dieser Sendung wurden keine Lagerartikel zugewiesen" #: templates/js/translated/sales_order.js:296 msgid "The following stock items will be shipped" -msgstr "" +msgstr "Die folgenden Lagerartikel werden verschickt" #: templates/js/translated/sales_order.js:336 msgid "Complete Shipment" -msgstr "" +msgstr "Lieferung fertigstellen" #: templates/js/translated/sales_order.js:360 msgid "Confirm Shipment" -msgstr "" +msgstr "Lieferung bestätigen" #: templates/js/translated/sales_order.js:416 msgid "No pending shipments found" -msgstr "" +msgstr "Keine ausstehenden Sendungen gefunden" #: templates/js/translated/sales_order.js:420 msgid "No stock items have been allocated to pending shipments" -msgstr "" +msgstr "Keine Lagerartikel wurden offenen Sendungen zugewiesen" #: templates/js/translated/sales_order.js:430 msgid "Complete Shipments" -msgstr "" +msgstr "Lieferung fertigstellen" #: templates/js/translated/sales_order.js:452 msgid "Skip" -msgstr "" +msgstr "Überspringen" + +#: templates/js/translated/sales_order.js:484 +msgid "Ship Sales Order" +msgstr "Auftrag versenden" + +#: templates/js/translated/sales_order.js:500 +msgid "Ship this order?" +msgstr "Bestellung versenden?" + +#: templates/js/translated/sales_order.js:506 +msgid "Order cannot be shipped as there are incomplete shipments" +msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind" #: templates/js/translated/sales_order.js:513 msgid "This order has line items which have not been completed." msgstr "Dieser Auftrag enthält Positionen, die noch nicht abgeschlossen sind." -#: templates/js/translated/sales_order.js:535 +#: templates/js/translated/sales_order.js:514 +msgid "Shipping this order means that the order and line items will no longer be editable." +msgstr "Versenden dieses Auftrags bedeutet, dass der Auftrag und seine Positionen nicht mehr bearbeitbar sind." + +#: templates/js/translated/sales_order.js:572 msgid "Issue this Sales Order?" msgstr "Diesen Auftrag aufgeben?" -#: templates/js/translated/sales_order.js:540 +#: templates/js/translated/sales_order.js:577 msgid "Issue Sales Order" msgstr "Auftrag aufgeben" -#: templates/js/translated/sales_order.js:559 +#: templates/js/translated/sales_order.js:596 msgid "Cancel Sales Order" msgstr "Auftrag stornieren" -#: templates/js/translated/sales_order.js:564 +#: templates/js/translated/sales_order.js:601 msgid "Cancelling this order means that the order will no longer be editable." -msgstr "" +msgstr "Stornieren dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." -#: templates/js/translated/sales_order.js:618 +#: templates/js/translated/sales_order.js:655 msgid "Create New Shipment" -msgstr "" +msgstr "Neue Lieferung erstellen" -#: templates/js/translated/sales_order.js:728 +#: templates/js/translated/sales_order.js:764 msgid "No sales orders found" msgstr "Keine Aufträge gefunden" -#: templates/js/translated/sales_order.js:908 +#: templates/js/translated/sales_order.js:944 msgid "Edit shipment" -msgstr "" +msgstr "Lieferung bearbeiten" -#: templates/js/translated/sales_order.js:911 +#: templates/js/translated/sales_order.js:947 msgid "Complete shipment" -msgstr "" +msgstr "Lieferung fertigstellen" -#: templates/js/translated/sales_order.js:916 +#: templates/js/translated/sales_order.js:952 msgid "Delete shipment" -msgstr "" +msgstr "Lieferung löschen" -#: templates/js/translated/sales_order.js:933 +#: templates/js/translated/sales_order.js:969 msgid "Edit Shipment" -msgstr "" +msgstr "Lieferung bearbeiten" -#: templates/js/translated/sales_order.js:948 +#: templates/js/translated/sales_order.js:984 msgid "Delete Shipment" -msgstr "" +msgstr "Lieferung löschen" -#: templates/js/translated/sales_order.js:981 +#: templates/js/translated/sales_order.js:1017 msgid "No matching shipments found" -msgstr "" +msgstr "Keine passende Lieferung gefunden" -#: templates/js/translated/sales_order.js:1006 +#: templates/js/translated/sales_order.js:1042 msgid "Shipment Reference" -msgstr "" +msgstr "Sendungsreferenz" -#: templates/js/translated/sales_order.js:1030 -#: templates/js/translated/sales_order.js:1529 +#: templates/js/translated/sales_order.js:1066 +#: templates/js/translated/sales_order.js:1565 msgid "Not shipped" -msgstr "" +msgstr "Nicht versandt" -#: templates/js/translated/sales_order.js:1048 +#: templates/js/translated/sales_order.js:1084 msgid "Tracking" -msgstr "" +msgstr "Nachverfolgen" -#: templates/js/translated/sales_order.js:1052 +#: templates/js/translated/sales_order.js:1088 msgid "Invoice" -msgstr "" +msgstr "Rechnung" -#: templates/js/translated/sales_order.js:1219 +#: templates/js/translated/sales_order.js:1255 msgid "Add Shipment" -msgstr "" +msgstr "Lieferung hinzufügen" -#: templates/js/translated/sales_order.js:1270 +#: templates/js/translated/sales_order.js:1306 msgid "Confirm stock allocation" -msgstr "" +msgstr "Bestandszuordnung bestätigen" -#: templates/js/translated/sales_order.js:1271 +#: templates/js/translated/sales_order.js:1307 msgid "Allocate Stock Items to Sales Order" msgstr "Lagerartikel Auftrag zuweisen" -#: templates/js/translated/sales_order.js:1477 +#: templates/js/translated/sales_order.js:1513 msgid "No sales order allocations found" msgstr "Keine Allokationen für Auftrag gefunden" -#: templates/js/translated/sales_order.js:1569 +#: templates/js/translated/sales_order.js:1605 msgid "Edit Stock Allocation" -msgstr "" +msgstr "Bestandszuordnung bearbeiten" -#: templates/js/translated/sales_order.js:1583 +#: templates/js/translated/sales_order.js:1619 msgid "Confirm Delete Operation" -msgstr "" +msgstr "Löschvorgang bestätigen" -#: templates/js/translated/sales_order.js:1584 +#: templates/js/translated/sales_order.js:1620 msgid "Delete Stock Allocation" -msgstr "" +msgstr "Bestandszuordnung löschen" -#: templates/js/translated/sales_order.js:1623 -#: templates/js/translated/sales_order.js:1710 -#: templates/js/translated/stock.js:1773 +#: templates/js/translated/sales_order.js:1659 +#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/stock.js:1776 msgid "Shipped to customer" -msgstr "" +msgstr "An den Kunden versandt" -#: templates/js/translated/sales_order.js:1631 -#: templates/js/translated/sales_order.js:1719 +#: templates/js/translated/sales_order.js:1667 +#: templates/js/translated/sales_order.js:1755 msgid "Stock location not specified" -msgstr "" +msgstr "Lagerort nicht angegeben" -#: templates/js/translated/sales_order.js:2008 +#: templates/js/translated/sales_order.js:2044 msgid "Allocate serial numbers" -msgstr "" +msgstr "Seriennummern zuweisen" -#: templates/js/translated/sales_order.js:2012 +#: templates/js/translated/sales_order.js:2048 msgid "Purchase stock" -msgstr "" +msgstr "Bestand kaufen" -#: templates/js/translated/sales_order.js:2021 -#: templates/js/translated/sales_order.js:2209 +#: templates/js/translated/sales_order.js:2057 +#: templates/js/translated/sales_order.js:2245 msgid "Calculate price" -msgstr "" +msgstr "Preis berechnen" -#: templates/js/translated/sales_order.js:2035 +#: templates/js/translated/sales_order.js:2071 msgid "Cannot be deleted as items have been shipped" -msgstr "" +msgstr "Kann nicht gelöscht werden, da Artikel versandt wurden" -#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2074 msgid "Cannot be deleted as items have been allocated" -msgstr "" +msgstr "Kann nicht gelöscht werden, da Artikel zugewiesen sind" -#: templates/js/translated/sales_order.js:2109 +#: templates/js/translated/sales_order.js:2145 msgid "Allocate Serial Numbers" -msgstr "" +msgstr "Seriennummern zuweisen" -#: templates/js/translated/sales_order.js:2217 +#: templates/js/translated/sales_order.js:2253 msgid "Update Unit Price" -msgstr "" +msgstr "Stückpreis aktualisieren" #: templates/js/translated/search.js:270 msgid "No results" -msgstr "" +msgstr "Keine Ergebnisse" #: templates/js/translated/search.js:292 templates/search.html:25 msgid "Enter search query" @@ -13125,517 +13282,517 @@ msgstr "Suchbegriff eingeben" #: templates/js/translated/search.js:342 msgid "result" -msgstr "" +msgstr "ergebnis" #: templates/js/translated/search.js:352 msgid "Minimize results" -msgstr "" +msgstr "Ergebnisse minimieren" #: templates/js/translated/search.js:355 msgid "Remove results" -msgstr "" +msgstr "Ergebnisse entfernen" #: templates/js/translated/stock.js:98 msgid "Serialize Stock Item" -msgstr "" +msgstr "Lagerartikel serialisieren" #: templates/js/translated/stock.js:129 msgid "Confirm Stock Serialization" -msgstr "" +msgstr "Lager-Serialisierung bestätigen" #: templates/js/translated/stock.js:139 msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" +msgstr "Standardsymbol für alle Orte, die kein Symbol haben (optional) - Erkunden Sie alle verfügbaren Symbole auf" #: templates/js/translated/stock.js:152 msgid "Parent stock location" -msgstr "" +msgstr "Übergeordneter Lagerort" #: templates/js/translated/stock.js:166 msgid "Add Location type" -msgstr "" +msgstr "Lagerorttyp hinzufügen" #: templates/js/translated/stock.js:202 msgid "Edit Stock Location" -msgstr "" +msgstr "Lagerort bearbeiten" #: templates/js/translated/stock.js:217 msgid "New Stock Location" -msgstr "" +msgstr "Lagerort hinzufügen" #: templates/js/translated/stock.js:219 msgid "Create another location after this one" -msgstr "" +msgstr "Weiteren Lagerort nach diesem erstellen" #: templates/js/translated/stock.js:220 msgid "Stock location created" -msgstr "" +msgstr "Lagerort erstellt" #: templates/js/translated/stock.js:234 msgid "Are you sure you want to delete this stock location?" -msgstr "" +msgstr "Soll dieser Lagerort gelöscht werden?" #: templates/js/translated/stock.js:241 msgid "Move to parent stock location" -msgstr "" +msgstr "Zum übergeordneten Lagerort verschieben" #: templates/js/translated/stock.js:250 msgid "Delete Stock Location" -msgstr "" +msgstr "Lagerort löschen" #: templates/js/translated/stock.js:254 msgid "Action for stock items in this stock location" -msgstr "" +msgstr "Aktion für Lagerartikel in diesem Lagerort" #: templates/js/translated/stock.js:259 msgid "Action for sub-locations" -msgstr "" +msgstr "Aktion für Unter-Lagerorte" #: templates/js/translated/stock.js:313 msgid "This part cannot be serialized" -msgstr "" +msgstr "Dieser Teil kann nicht serialisiert werden" #: templates/js/translated/stock.js:349 msgid "Add given quantity as packs instead of individual items" -msgstr "" +msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" #: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" -msgstr "" +msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" #: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" -msgstr "" +msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" #: templates/js/translated/stock.js:439 msgid "Stock item duplicated" -msgstr "" +msgstr "Lagerartikel dupliziert" #: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" -msgstr "" +msgstr "Lagerartikel duplizieren" #: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" -msgstr "" +msgstr "Soll dieser Lagerartikel gelöscht werden?" #: templates/js/translated/stock.js:480 msgid "Delete Stock Item" -msgstr "" +msgstr "Lagerartikel löschen" #: templates/js/translated/stock.js:501 msgid "Edit Stock Item" -msgstr "" +msgstr "Lagerartikel bearbeiten" #: templates/js/translated/stock.js:543 msgid "Create another item after this one" -msgstr "" +msgstr "Weiteres Teil nach diesem erstellen" #: templates/js/translated/stock.js:555 msgid "Created new stock item" -msgstr "" +msgstr "Neuen Lagerartikel erstellen" #: templates/js/translated/stock.js:568 msgid "Created multiple stock items" -msgstr "" +msgstr "Mehrere Lagerartikel wurden erstellt" #: templates/js/translated/stock.js:593 msgid "Find Serial Number" -msgstr "" +msgstr "Seriennummer finden" #: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" -msgstr "" +msgstr "Seriennummer eingeben" #: templates/js/translated/stock.js:614 msgid "Enter a serial number" -msgstr "" +msgstr "Eine Seriennummer eingeben" #: templates/js/translated/stock.js:634 msgid "No matching serial number" -msgstr "" +msgstr "Keine passende Seriennummer" #: templates/js/translated/stock.js:643 msgid "More than one matching result found" -msgstr "" +msgstr "Mehr als ein übereinstimmendes Ergebnis gefunden" #: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" -msgstr "" +msgstr "Bestand Zuweisung bestätigen" #: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" -msgstr "" +msgstr "Lagerbestand einem Kunden zuweisen" #: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" -msgstr "" +msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden" #: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" -msgstr "" +msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden" #: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" -msgstr "" +msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht" #: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" -msgstr "" +msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht" #: templates/js/translated/stock.js:928 msgid "Confirm stock item merge" -msgstr "" +msgstr "Bestandszusammenführung bestätigen" #: templates/js/translated/stock.js:929 msgid "Merge Stock Items" -msgstr "" +msgstr "Lagerartikel zusammenführen" #: templates/js/translated/stock.js:1024 msgid "Transfer Stock" -msgstr "" +msgstr "Bestand verschieben" #: templates/js/translated/stock.js:1025 msgid "Move" -msgstr "" +msgstr "Verschieben" #: templates/js/translated/stock.js:1031 msgid "Count Stock" -msgstr "" +msgstr "Bestand zählen" #: templates/js/translated/stock.js:1032 msgid "Count" -msgstr "" +msgstr "Zählen" #: templates/js/translated/stock.js:1036 msgid "Remove Stock" -msgstr "" +msgstr "Bestand entfernen" #: templates/js/translated/stock.js:1037 msgid "Take" -msgstr "" +msgstr "Entnehmen" #: templates/js/translated/stock.js:1041 msgid "Add Stock" -msgstr "" +msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:1042 users/models.py:414 +#: templates/js/translated/stock.js:1042 users/models.py:392 msgid "Add" msgstr "Hinzufügen" #: templates/js/translated/stock.js:1046 msgid "Delete Stock" -msgstr "" +msgstr "Bestand löschen" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" -msgstr "" +msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" -msgstr "" +msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:1180 templates/js/translated/stock.js:3299 msgid "Select Stock Items" -msgstr "" +msgstr "Lagerartikel auswählen" -#: templates/js/translated/stock.js:1178 +#: templates/js/translated/stock.js:1181 msgid "Select at least one available stock item" -msgstr "" +msgstr "Wähle mindestens einen verfügbaren Lagerartikel aus" -#: templates/js/translated/stock.js:1224 +#: templates/js/translated/stock.js:1227 msgid "Confirm stock adjustment" -msgstr "" +msgstr "Bestandsanpassung bestätigen" -#: templates/js/translated/stock.js:1360 +#: templates/js/translated/stock.js:1363 msgid "PASS" -msgstr "" +msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:1362 +#: templates/js/translated/stock.js:1365 msgid "FAIL" -msgstr "" +msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:1367 +#: templates/js/translated/stock.js:1370 msgid "NO RESULT" -msgstr "" - -#: templates/js/translated/stock.js:1447 -msgid "Pass test" -msgstr "" +msgstr "KEIN ERGEBNIS" #: templates/js/translated/stock.js:1450 +msgid "Pass test" +msgstr "Test bestanden" + +#: templates/js/translated/stock.js:1453 msgid "Add test result" -msgstr "" +msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:1473 +#: templates/js/translated/stock.js:1476 msgid "No test results found" -msgstr "" +msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1540 msgid "Test Date" -msgstr "" +msgstr "Testdatum" -#: templates/js/translated/stock.js:1550 +#: templates/js/translated/stock.js:1553 msgid "Test started" -msgstr "" +msgstr "Test gestartet" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1562 msgid "Test finished" -msgstr "" +msgstr "Test beendet" -#: templates/js/translated/stock.js:1713 +#: templates/js/translated/stock.js:1716 msgid "Edit Test Result" -msgstr "" +msgstr "Testergebnis bearbeiten" -#: templates/js/translated/stock.js:1733 +#: templates/js/translated/stock.js:1736 msgid "Delete Test Result" -msgstr "" +msgstr "Testergebnis löschen" -#: templates/js/translated/stock.js:1765 +#: templates/js/translated/stock.js:1768 msgid "In production" -msgstr "" +msgstr "In Produktion" -#: templates/js/translated/stock.js:1769 +#: templates/js/translated/stock.js:1772 msgid "Installed in Stock Item" -msgstr "" +msgstr "In Lagerartikel installiert" -#: templates/js/translated/stock.js:1777 +#: templates/js/translated/stock.js:1780 msgid "Assigned to Sales Order" -msgstr "" +msgstr "Auftrag zugewiesen" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1786 msgid "No stock location set" -msgstr "" +msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:1839 +#: templates/js/translated/stock.js:1842 msgid "Change stock status" -msgstr "" +msgstr "Bestandsstatus ändern" -#: templates/js/translated/stock.js:1848 +#: templates/js/translated/stock.js:1851 msgid "Merge stock" -msgstr "" +msgstr "Bestand zusammenführen" -#: templates/js/translated/stock.js:1897 +#: templates/js/translated/stock.js:1900 msgid "Delete stock" -msgstr "" +msgstr "Bestand löschen" -#: templates/js/translated/stock.js:1952 +#: templates/js/translated/stock.js:1953 msgid "stock items" -msgstr "" +msgstr "Lagerartikel" -#: templates/js/translated/stock.js:1957 +#: templates/js/translated/stock.js:1958 msgid "Scan to location" -msgstr "" +msgstr "Zu Lagerort einscannen" -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1969 msgid "Stock Actions" msgstr "Lager-Aktionen" -#: templates/js/translated/stock.js:2012 +#: templates/js/translated/stock.js:2013 msgid "Load installed items" -msgstr "" +msgstr "Installierte Artikel laden" -#: templates/js/translated/stock.js:2090 +#: templates/js/translated/stock.js:2091 msgid "Stock item is in production" -msgstr "" +msgstr "Lagerartikel wird produziert" -#: templates/js/translated/stock.js:2095 +#: templates/js/translated/stock.js:2096 msgid "Stock item assigned to sales order" -msgstr "" +msgstr "Lagerartikel wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Stock item assigned to customer" -msgstr "" +msgstr "Lagerartikel wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:2101 +#: templates/js/translated/stock.js:2102 msgid "Serialized stock item has been allocated" -msgstr "" +msgstr "Serialisierter Lagerartikel wurde zugewiesen" -#: templates/js/translated/stock.js:2103 +#: templates/js/translated/stock.js:2104 msgid "Stock item has been fully allocated" -msgstr "" +msgstr "Lagerartikel wurde vollständig zugewiesen" -#: templates/js/translated/stock.js:2105 +#: templates/js/translated/stock.js:2106 msgid "Stock item has been partially allocated" -msgstr "" +msgstr "Lagerartikel wurde teilweise zugewiesen" -#: templates/js/translated/stock.js:2108 +#: templates/js/translated/stock.js:2109 msgid "Stock item has been installed in another item" -msgstr "" +msgstr "Lagerartikel in anderem Artikel verbaut" -#: templates/js/translated/stock.js:2110 +#: templates/js/translated/stock.js:2111 msgid "Stock item has been consumed by a build order" -msgstr "" +msgstr "Lagerbestand wurde durch einen Bauauftrag verbraucht" -#: templates/js/translated/stock.js:2114 +#: templates/js/translated/stock.js:2115 msgid "Stock item has expired" -msgstr "" +msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:2116 +#: templates/js/translated/stock.js:2117 msgid "Stock item will expire soon" -msgstr "" +msgstr "Lagerartikel läuft demnächst ab" -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "Stock item has been rejected" -msgstr "" +msgstr "Lagerartikel wurde zurückgewiesen" -#: templates/js/translated/stock.js:2123 +#: templates/js/translated/stock.js:2124 msgid "Stock item is lost" -msgstr "" +msgstr "Lagerartikel ist verloren" -#: templates/js/translated/stock.js:2125 +#: templates/js/translated/stock.js:2126 msgid "Stock item is destroyed" -msgstr "" +msgstr "Lagerartikel ist zerstört" -#: templates/js/translated/stock.js:2129 +#: templates/js/translated/stock.js:2130 #: templates/js/translated/table_filters.js:350 msgid "Depleted" -msgstr "" +msgstr "Aufgebraucht" -#: templates/js/translated/stock.js:2294 +#: templates/js/translated/stock.js:2295 msgid "Supplier part not specified" -msgstr "" +msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2342 msgid "Stock Value" -msgstr "" +msgstr "Bestandswert" -#: templates/js/translated/stock.js:2469 +#: templates/js/translated/stock.js:2470 msgid "No stock items matching query" -msgstr "" +msgstr "Keine zur Anfrage passenden Lagerartikel gefunden" #: templates/js/translated/stock.js:2573 msgid "stock locations" -msgstr "" +msgstr "Lagerorte" #: templates/js/translated/stock.js:2728 msgid "Load Sublocations" -msgstr "" +msgstr "Untergeordnete Lagerorte laden" #: templates/js/translated/stock.js:2846 msgid "Details" -msgstr "" +msgstr "Details" #: templates/js/translated/stock.js:2850 msgid "No changes" -msgstr "" +msgstr "Keine Änderungen" #: templates/js/translated/stock.js:2862 msgid "Part information unavailable" -msgstr "" +msgstr "Teileinformationen nicht verfügbar" #: templates/js/translated/stock.js:2884 msgid "Location no longer exists" -msgstr "" +msgstr "Lagerort existiert nicht mehr" #: templates/js/translated/stock.js:2901 msgid "Build order no longer exists" -msgstr "" +msgstr "Bauauftrag existiert nicht mehr" #: templates/js/translated/stock.js:2916 msgid "Purchase order no longer exists" -msgstr "" +msgstr "Bestellung existiert nicht mehr" #: templates/js/translated/stock.js:2933 msgid "Sales Order no longer exists" -msgstr "" +msgstr "Auftrag existiert nicht mehr" #: templates/js/translated/stock.js:2950 msgid "Return Order no longer exists" -msgstr "" +msgstr "Rücksendebestellung existiert nicht mehr" #: templates/js/translated/stock.js:2969 msgid "Customer no longer exists" -msgstr "" +msgstr "Kunde existiert nicht mehr" #: templates/js/translated/stock.js:2987 msgid "Stock item no longer exists" -msgstr "" +msgstr "Lagerartikel existiert nicht mehr" #: templates/js/translated/stock.js:3005 msgid "Added" -msgstr "" +msgstr "Hinzugefügt" #: templates/js/translated/stock.js:3013 msgid "Removed" -msgstr "" +msgstr "Entfernt" #: templates/js/translated/stock.js:3085 msgid "No installed items" -msgstr "" +msgstr "Keine installierten Artikel" #: templates/js/translated/stock.js:3139 templates/js/translated/stock.js:3175 msgid "Uninstall Stock Item" -msgstr "" +msgstr "Lagerartikel deinstallieren" #: templates/js/translated/stock.js:3197 msgid "Select stock item to uninstall" -msgstr "" +msgstr "Zu deinstallierende Lagerartikel auswählen" #: templates/js/translated/stock.js:3218 msgid "Install another stock item into this item" -msgstr "" +msgstr "Einen anderen Lagerartikel in dieses Teil installieren" #: templates/js/translated/stock.js:3219 msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" +msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden" #: templates/js/translated/stock.js:3221 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" -msgstr "" +msgstr "Der Lagerartikel ist mit einem Teil verknüpft das in der Stückliste für diesen Lagerartikel ist" #: templates/js/translated/stock.js:3222 msgid "The Stock Item is currently available in stock" -msgstr "" +msgstr "Dieser Lagerartikel ist aktuell vorhanden" #: templates/js/translated/stock.js:3223 msgid "The Stock Item is not already installed in another item" -msgstr "" +msgstr "Der Lagerbestand ist nicht bereits in einem anderen Bestand installiert" #: templates/js/translated/stock.js:3224 msgid "The Stock Item is tracked by either a batch code or serial number" -msgstr "" +msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt" #: templates/js/translated/stock.js:3237 msgid "Select part to install" -msgstr "" +msgstr "Teil zur Installation auswählen" #: templates/js/translated/stock.js:3300 msgid "Select one or more stock items" -msgstr "" +msgstr "Wählen Sie einen oder mehrere Bestandteile aus" #: templates/js/translated/stock.js:3313 msgid "Selected stock items" -msgstr "" +msgstr "Lagerartikel auswählen" #: templates/js/translated/stock.js:3317 msgid "Change Stock Status" -msgstr "" +msgstr "Bestandsstatus ändern" #: templates/js/translated/table_filters.js:74 msgid "Has project code" -msgstr "" +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 msgid "Order status" -msgstr "" +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 msgid "Outstanding" -msgstr "" +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 msgid "Assigned to me" -msgstr "" +msgstr "Mir zugewiesen" #: templates/js/translated/table_filters.js:158 msgid "Trackable Part" @@ -13643,11 +13800,11 @@ msgstr "Nachverfolgbares Teil" #: templates/js/translated/table_filters.js:162 msgid "Assembled Part" -msgstr "" +msgstr "Baugruppe" #: templates/js/translated/table_filters.js:166 msgid "Has Available Stock" -msgstr "" +msgstr "Hat verfügbaren Bestand" #: templates/js/translated/table_filters.js:182 msgid "Allow Variant Stock" @@ -13656,108 +13813,108 @@ msgstr "Erlaube alternatives Lager" #: templates/js/translated/table_filters.js:234 #: templates/js/translated/table_filters.js:345 msgid "Include sublocations" -msgstr "" +msgstr "Unter-Lagerorte einschließen" #: templates/js/translated/table_filters.js:235 msgid "Include locations" -msgstr "" +msgstr "Lagerorte einschließen" #: templates/js/translated/table_filters.js:267 msgid "Has location type" -msgstr "" +msgstr "Hat Lagerorttyp" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 #: templates/js/translated/table_filters.js:711 msgid "Include subcategories" -msgstr "" +msgstr "Unterkategorien einschließen" #: templates/js/translated/table_filters.js:287 #: templates/js/translated/table_filters.js:759 msgid "Subscribed" -msgstr "" +msgstr "Abonniert" #: templates/js/translated/table_filters.js:298 #: templates/js/translated/table_filters.js:380 msgid "Is Serialized" -msgstr "" +msgstr "Hat Seriennummer" #: templates/js/translated/table_filters.js:301 #: templates/js/translated/table_filters.js:387 msgid "Serial number GTE" -msgstr "" +msgstr "Seriennummer >=" #: templates/js/translated/table_filters.js:302 #: templates/js/translated/table_filters.js:388 msgid "Serial number greater than or equal to" -msgstr "" +msgstr "Seriennummer größer oder gleich" #: templates/js/translated/table_filters.js:305 #: templates/js/translated/table_filters.js:391 msgid "Serial number LTE" -msgstr "" +msgstr "Seriennummer <=" #: templates/js/translated/table_filters.js:306 #: templates/js/translated/table_filters.js:392 msgid "Serial number less than or equal to" -msgstr "" +msgstr "Seriennummern kleiner oder gleich" #: templates/js/translated/table_filters.js:309 #: templates/js/translated/table_filters.js:310 #: templates/js/translated/table_filters.js:383 #: templates/js/translated/table_filters.js:384 msgid "Serial number" -msgstr "" +msgstr "Seriennummer" #: templates/js/translated/table_filters.js:314 #: templates/js/translated/table_filters.js:405 msgid "Batch code" -msgstr "" +msgstr "Losnummer" #: templates/js/translated/table_filters.js:325 #: templates/js/translated/table_filters.js:700 msgid "Active parts" -msgstr "" +msgstr "Aktive Teile" #: templates/js/translated/table_filters.js:326 msgid "Show stock for active parts" -msgstr "" +msgstr "Bestand aktiver Teile anzeigen" #: templates/js/translated/table_filters.js:331 msgid "Part is an assembly" -msgstr "" +msgstr "Teil ist eine Baugruppe" #: templates/js/translated/table_filters.js:335 msgid "Is allocated" -msgstr "" +msgstr "Ist zugeordnet" #: templates/js/translated/table_filters.js:336 msgid "Item has been allocated" -msgstr "" +msgstr "Teil wurde zugeordnet" #: templates/js/translated/table_filters.js:341 msgid "Stock is available for use" -msgstr "" +msgstr "Lagerartikel ist zur Verwendung verfügbar" #: templates/js/translated/table_filters.js:346 msgid "Include stock in sublocations" -msgstr "" +msgstr "Bestand in Unter-Lagerorten einschließen" #: templates/js/translated/table_filters.js:351 msgid "Show stock items which are depleted" -msgstr "" +msgstr "Zeige aufgebrauchte Lagerartikel" #: templates/js/translated/table_filters.js:356 msgid "Show items which are in stock" -msgstr "" +msgstr "Zeige Teile welche im Lager sind" #: templates/js/translated/table_filters.js:361 msgid "Show items which are in production" -msgstr "" +msgstr "Zeige Teile welche in Produktion sind" #: templates/js/translated/table_filters.js:365 msgid "Include Variants" -msgstr "" +msgstr "Varianten einschließen" #: templates/js/translated/table_filters.js:366 msgid "Include stock items for variant parts" @@ -13765,181 +13922,181 @@ msgstr "Lagerartikel für Teile-Varianten einschließen" #: templates/js/translated/table_filters.js:371 msgid "Show stock items which are installed in another item" -msgstr "" +msgstr "Zeige Bestand, welcher in einem anderen Teil verbaut ist" #: templates/js/translated/table_filters.js:376 msgid "Show items which have been assigned to a customer" -msgstr "" +msgstr "Zeige Bestand, welcher Kunden zugeordnet ist" #: templates/js/translated/table_filters.js:396 #: templates/js/translated/table_filters.js:397 msgid "Stock status" -msgstr "" +msgstr "Bestandsstatus" #: templates/js/translated/table_filters.js:400 msgid "Has batch code" -msgstr "" +msgstr "Hat Batch-Code" #: templates/js/translated/table_filters.js:409 msgid "Stock item is tracked by either batch code or serial number" -msgstr "" +msgstr "Lagerbestand wird entweder per Batch-Code oder Seriennummer verfolgt" #: templates/js/translated/table_filters.js:414 msgid "Has purchase price" -msgstr "" +msgstr "Hat Einkaufspreis" #: templates/js/translated/table_filters.js:415 msgid "Show stock items which have a purchase price set" -msgstr "" +msgstr "Zeige Bestand, für welchen ein Einkaufspreis verfügbar ist" #: templates/js/translated/table_filters.js:419 msgid "Expiry Date before" -msgstr "" +msgstr "Ablaufdatum vor" #: templates/js/translated/table_filters.js:423 msgid "Expiry Date after" -msgstr "" +msgstr "Ablaufdatum nach" #: templates/js/translated/table_filters.js:436 msgid "Show stock items which have expired" -msgstr "" +msgstr "Zeige abgelaufene Lagerartikel" #: templates/js/translated/table_filters.js:442 msgid "Show stock which is close to expiring" -msgstr "" +msgstr "Zeige Bestand, der bald abläuft" #: templates/js/translated/table_filters.js:456 msgid "Test Passed" -msgstr "" +msgstr "Test bestanden" #: templates/js/translated/table_filters.js:460 msgid "Include Installed Items" -msgstr "" +msgstr "Installierte Teile einschließen" #: templates/js/translated/table_filters.js:515 msgid "Build status" -msgstr "" +msgstr "Bauauftrags Status" #: templates/js/translated/table_filters.js:712 msgid "Include parts in subcategories" -msgstr "" +msgstr "Teile in Unterkategorien einschließen" #: templates/js/translated/table_filters.js:717 msgid "Show active parts" -msgstr "" +msgstr "Aktive Teile anzeigen" #: templates/js/translated/table_filters.js:725 msgid "Available stock" -msgstr "" +msgstr "Verfügbarer Lagerbestand" #: templates/js/translated/table_filters.js:733 #: templates/js/translated/table_filters.js:833 msgid "Has Units" -msgstr "" +msgstr "Hat Einheiten" #: templates/js/translated/table_filters.js:734 msgid "Part has defined units" -msgstr "" +msgstr "Teil hat definierte Einheiten" #: templates/js/translated/table_filters.js:738 msgid "Has IPN" -msgstr "" +msgstr "Hat IPN" #: templates/js/translated/table_filters.js:739 msgid "Part has internal part number" -msgstr "" +msgstr "Teil hat Interne Teilenummer" #: templates/js/translated/table_filters.js:743 msgid "In stock" -msgstr "" +msgstr "Auf Lager" #: templates/js/translated/table_filters.js:751 msgid "Purchasable" -msgstr "" +msgstr "Kaufbar" #: templates/js/translated/table_filters.js:763 msgid "Has stocktake entries" -msgstr "" +msgstr "Hat Inventureinträge" #: templates/js/translated/table_filters.js:829 msgid "Has Choices" -msgstr "" +msgstr "Hat Auswahlen" #: templates/js/translated/tables.js:92 msgid "Display calendar view" -msgstr "" +msgstr "Kalenderansicht anzeigen" #: templates/js/translated/tables.js:102 msgid "Display list view" -msgstr "" +msgstr "Listenansicht anzeigen" #: templates/js/translated/tables.js:112 msgid "Display tree view" -msgstr "" +msgstr "Baumansicht anzeigen" #: templates/js/translated/tables.js:130 msgid "Expand all rows" -msgstr "" +msgstr "Alle Zeilen ausklappen" #: templates/js/translated/tables.js:136 msgid "Collapse all rows" -msgstr "" +msgstr "Alle Zeilen einklappen" #: templates/js/translated/tables.js:186 msgid "Export Table Data" -msgstr "" +msgstr "Tabellendaten exportieren" #: templates/js/translated/tables.js:190 msgid "Select File Format" -msgstr "" +msgstr "Dateiformat wählen" #: templates/js/translated/tables.js:529 msgid "Loading data" -msgstr "" +msgstr "Lade Daten" #: templates/js/translated/tables.js:532 msgid "rows per page" -msgstr "" +msgstr "Zeilen pro Seite" #: templates/js/translated/tables.js:537 msgid "Showing all rows" -msgstr "" +msgstr "Alle Zeilen anzeigen" #: templates/js/translated/tables.js:539 msgid "Showing" -msgstr "" +msgstr "Zeige" #: templates/js/translated/tables.js:539 msgid "to" -msgstr "" +msgstr "bis" #: templates/js/translated/tables.js:539 msgid "of" -msgstr "" +msgstr "von" #: templates/js/translated/tables.js:539 msgid "rows" -msgstr "" +msgstr "Zeilen" #: templates/js/translated/tables.js:546 msgid "No matching results" -msgstr "" +msgstr "Keine passenden Ergebnisse gefunden" #: templates/js/translated/tables.js:549 msgid "Hide/Show pagination" -msgstr "" +msgstr "Seitennavigation verstecken/anzeigen" #: templates/js/translated/tables.js:555 msgid "Toggle" -msgstr "" +msgstr "Umschalten" #: templates/js/translated/tables.js:558 msgid "Columns" -msgstr "" +msgstr "Spalten" #: templates/js/translated/tables.js:561 msgid "All" -msgstr "" +msgstr "Alle" #: templates/navbar.html:45 msgid "Buy" @@ -13959,7 +14116,7 @@ msgstr "Neue Benachrichtigungen" #: templates/navbar.html:144 users/models.py:201 msgid "Admin" -msgstr "" +msgstr "Admin" #: templates/navbar.html:148 msgid "Logout" @@ -13973,6 +14130,22 @@ msgstr "Speichern" msgid "Show all notifications and history" msgstr "Zeige alle Benachrichtigungen und Verlauf" +#: templates/pui_banner.html:9 +msgid "Platform UI - the new UI for InvenTree - provides more modern administration options." +msgstr "Plattform UI - die neue Oberfläche für InvenTree - bietet modernere Administrationsmöglichkeiten." + +#: templates/pui_banner.html:12 +msgid "Platform UI - the new UI for InvenTree - is ready to be tested." +msgstr "Plattform UI - die neue Benutzeroberfläche für InvenTree - ist bereit um getestet zu werden." + +#: templates/pui_banner.html:15 +msgid "Try it out now" +msgstr "Jetzt ausprobieren" + +#: templates/pui_banner.html:15 +msgid "here" +msgstr "hier" + #: templates/qr_code.html:11 msgid "QR data not provided" msgstr "QR Daten nicht angegeben" @@ -14039,28 +14212,28 @@ msgstr "Weiter" #: templates/socialaccount/login.html:29 msgid "Invalid SSO Provider" -msgstr "" +msgstr "Ungültiger SSO-Anbieter" #: templates/socialaccount/login.html:31 msgid "The selected SSO provider is invalid, or has not been correctly configured" -msgstr "" +msgstr "Der ausgewählte SSO-Anbieter ist ungültig oder wurde nicht korrekt konfiguriert" #: templates/socialaccount/signup.html:11 #, python-format msgid "You are about to use your %(provider_name)s account to login to %(site_name)s." -msgstr "" +msgstr "Sie sind dabei, Ihr %(provider_name)s Konto zu verwenden, um sich bei %(site_name)s anzumelden." #: templates/socialaccount/signup.html:13 msgid "As a final step, please complete the following form" -msgstr "" +msgstr "Bitte füllen Sie zum Abschluss folgendes Formular aus" #: templates/socialaccount/snippets/provider_list.html:26 msgid "Provider has not been configured" -msgstr "" +msgstr "Anbieter wurde nicht konfiguriert" #: templates/socialaccount/snippets/provider_list.html:35 msgid "No SSO providers have been configured" -msgstr "" +msgstr "Es wurden keine SSO-Anbieter konfiguriert" #: templates/stats.html:13 msgid "Instance Name" @@ -14140,7 +14313,7 @@ msgstr "Welche Benutzer gehören zu dieser Gruppe" #: users/admin.py:249 msgid "The following users are members of multiple groups" -msgstr "" +msgstr "Folgende Benutzer gehören zu mehreren Gruppen" #: users/admin.py:283 msgid "Personal info" @@ -14156,19 +14329,19 @@ msgstr "wichtige Daten" #: users/authentication.py:29 users/models.py:138 msgid "Token has been revoked" -msgstr "" +msgstr "Token wurde widerrufen" #: users/authentication.py:32 msgid "Token has expired" -msgstr "" +msgstr "Token ist abgelaufen" #: users/models.py:81 msgid "API Token" -msgstr "" +msgstr "API Token" #: users/models.py:82 msgid "API Tokens" -msgstr "" +msgstr "API-Tokens" #: users/models.py:118 msgid "Token Name" @@ -14180,49 +14353,48 @@ msgstr "Benutzerdefinierter Tokenname" #: users/models.py:125 msgid "Token expiry date" -msgstr "" +msgstr "Token Ablaufdatum" #: users/models.py:133 msgid "Last Seen" -msgstr "" +msgstr "Zuletzt gesehen" #: users/models.py:134 msgid "Last time the token was used" -msgstr "" +msgstr "Das letzte Mal, wo das Token verwendet wurde" #: users/models.py:138 msgid "Revoked" -msgstr "" +msgstr "Widerrufen" -#: users/models.py:397 +#: users/models.py:375 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:406 +#: users/models.py:384 msgid "Group" msgstr "Gruppe" -#: users/models.py:410 +#: users/models.py:388 msgid "View" msgstr "Ansicht" -#: users/models.py:410 +#: users/models.py:388 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:414 +#: users/models.py:392 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:418 +#: users/models.py:396 msgid "Change" msgstr "Ändern" -#: users/models.py:420 +#: users/models.py:398 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:426 +#: users/models.py:404 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" - diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po index bd12cb701e..5887020841 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-04-20 13:19+0000\n" -"PO-Revision-Date: 2024-04-21 04:19\n" +"POT-Creation-Date: 2024-06-19 04:39+0000\n" +"PO-Revision-Date: 2024-06-19 04:49\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,11 +17,11 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 216\n" -#: InvenTree/api.py:255 +#: InvenTree/api.py:272 msgid "API endpoint not found" msgstr "Το API endpoint δε βρέθηκε" -#: InvenTree/api.py:519 +#: InvenTree/api.py:520 msgid "User does not have permission to view this model" msgstr "Δεν έχετε δικαιώματα να το δείτε αυτό" @@ -52,30 +52,30 @@ msgstr "Δόθηκε μη έγκυρη ποσότητα ({exc})" msgid "Error details can be found in the admin panel" msgstr "Μπορείτε να βρείτε λεπτομέρειες σφάλματος στον πίνακα διαχείρισης" -#: InvenTree/fields.py:139 +#: InvenTree/fields.py:136 msgid "Enter date" msgstr "Εισάγετε ημερομηνία" -#: InvenTree/fields.py:208 InvenTree/models.py:1021 build/serializers.py:438 -#: build/serializers.py:516 build/templates/build/sidebar.html:21 -#: company/models.py:847 company/templates/company/sidebar.html:37 -#: order/models.py:1283 order/templates/order/po_sidebar.html:11 +#: InvenTree/fields.py:205 InvenTree/models.py:918 build/serializers.py:452 +#: build/serializers.py:530 build/templates/build/sidebar.html:21 +#: company/models.py:817 company/templates/company/sidebar.html:37 +#: order/models.py:1296 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:3175 part/templates/part/part_sidebar.html:63 -#: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:226 stock/models.py:2332 stock/models.py:2449 -#: stock/serializers.py:501 stock/serializers.py:659 stock/serializers.py:755 -#: stock/serializers.py:805 stock/serializers.py:1114 stock/serializers.py:1203 -#: stock/serializers.py:1368 stock/templates/stock/stock_sidebar.html:25 +#: part/models.py:3183 part/templates/part/part_sidebar.html:63 +#: report/templates/report/inventree_build_order_report.html:172 +#: stock/admin.py:230 stock/models.py:2309 stock/models.py:2431 +#: stock/serializers.py:632 stock/serializers.py:790 stock/serializers.py:886 +#: stock/serializers.py:936 stock/serializers.py:1230 stock/serializers.py:1319 +#: stock/serializers.py:1484 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:1080 -#: templates/js/translated/purchase_order.js:2201 -#: templates/js/translated/return_order.js:776 -#: templates/js/translated/sales_order.js:1067 -#: templates/js/translated/sales_order.js:1982 -#: templates/js/translated/stock.js:1533 templates/js/translated/stock.js:2427 +#: templates/js/translated/part.js:1081 +#: templates/js/translated/purchase_order.js:2200 +#: templates/js/translated/return_order.js:775 +#: templates/js/translated/sales_order.js:1103 +#: templates/js/translated/sales_order.js:2018 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:2428 msgid "Notes" msgstr "Σημειώσεις" @@ -120,19 +120,19 @@ msgstr "Επιβεβαίωση διεύθυνσης email" msgid "You must type the same email each time." msgstr "Πρέπει να πληκτρολογήσετε το ίδιο email κάθε φορά." -#: InvenTree/forms.py:253 InvenTree/forms.py:261 +#: InvenTree/forms.py:248 InvenTree/forms.py:256 msgid "The provided primary email address is not valid." msgstr "Η παρεχόμενη κύρια διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη." -#: InvenTree/forms.py:268 +#: InvenTree/forms.py:263 msgid "The provided email domain is not approved." msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυδρομείου δεν έχει εγκριθεί." -#: InvenTree/forms.py:395 +#: InvenTree/forms.py:390 msgid "Registration is disabled." msgstr "Η εγγραφή είναι απενεργοποιημένη." -#: InvenTree/helpers.py:525 order/models.py:541 order/models.py:743 +#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:764 msgid "Invalid quantity provided" msgstr "Μη έγκυρη ποσότητα" @@ -171,35 +171,35 @@ msgstr "Ο αριθμός μοναδικών σειριακών αριθμών ( msgid "Remove HTML tags from this value" msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισάγατε" -#: InvenTree/helpers_model.py:150 +#: InvenTree/helpers_model.py:140 msgid "Connection error" msgstr "Σφάλμα σύνδεσης" -#: InvenTree/helpers_model.py:155 InvenTree/helpers_model.py:162 +#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 msgid "Server responded with invalid status code" msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:148 msgid "Exception occurred" msgstr "Προέκυψε σφάλμα" -#: InvenTree/helpers_model.py:168 +#: InvenTree/helpers_model.py:158 msgid "Server responded with invalid Content-Length value" msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\"" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:161 msgid "Image size is too large" msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος" -#: InvenTree/helpers_model.py:183 +#: InvenTree/helpers_model.py:173 msgid "Image download exceeded maximum size" msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος" -#: InvenTree/helpers_model.py:188 +#: InvenTree/helpers_model.py:178 msgid "Remote server returned empty response" msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" -#: InvenTree/helpers_model.py:196 +#: InvenTree/helpers_model.py:186 msgid "Supplied URL is not a valid image file" msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" @@ -296,42 +296,50 @@ msgid "Portuguese (Brazilian)" msgstr "Πορτογαλικά (Βραζιλίας)" #: InvenTree/locales.py:41 +msgid "Romanian" +msgstr "" + +#: InvenTree/locales.py:42 msgid "Russian" msgstr "Ρωσικά" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:43 msgid "Slovak" msgstr "Σλοβάκικα" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:44 msgid "Slovenian" msgstr "Σλοβενικά" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:45 msgid "Serbian" msgstr "Σερβικά" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:46 msgid "Swedish" msgstr "Σουηδικά" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:47 msgid "Thai" msgstr "Ταϊλανδέζικα" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:48 msgid "Turkish" msgstr "Τούρκικα" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:49 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:50 msgid "Vietnamese" msgstr "Βιετναμέζικα" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:51 msgid "Chinese (Simplified)" msgstr "Κινέζικα (απλοποιημένα)" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:52 msgid "Chinese (Traditional)" msgstr "Κινέζικα (Παραδοσιακά)" @@ -340,156 +348,68 @@ msgstr "Κινέζικα (Παραδοσιακά)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Σύνδεση στην εφαρμογή" -#: InvenTree/magic_login.py:38 company/models.py:133 +#: InvenTree/magic_login.py:38 company/models.py:136 #: company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 msgid "Email" msgstr "" -#: InvenTree/models.py:107 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Σφάλμα κατά την εκτέλεση επικύρωσης προσθέτου" -#: InvenTree/models.py:162 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Τα μεταδεδομένα πρέπει να είναι ένα αντικείμενο dict python" -#: InvenTree/models.py:168 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Μεταδεδομένα Πρόσθετου" -#: InvenTree/models.py:169 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON πεδίο μεταδεδομένων, για χρήση από εξωτερικά πρόσθετα" -#: InvenTree/models.py:399 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Λανθασμένο μοτίβο" -#: InvenTree/models.py:406 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Δώσατε λάθος μορφή κλειδιού" -#: InvenTree/models.py:412 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Λείπει το απαραίτητο κλειδί" -#: InvenTree/models.py:423 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Το πεδίο δεν μπορεί να είναι άδειο" -#: InvenTree/models.py:431 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Η αναφορά πρέπει να ταιριάζει με το απαιτούμενο μοτίβο" -#: InvenTree/models.py:462 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Ο αριθμός αναφοράς είναι πολύ μεγάλος" -#: InvenTree/models.py:536 -msgid "Missing file" -msgstr "Το αρχείο λείπει" - -#: InvenTree/models.py:537 -msgid "Missing external link" -msgstr "Λείπει ο εξωτερικός σύνδεσμος" - -#: InvenTree/models.py:558 stock/models.py:2444 -#: templates/js/translated/attachment.js:119 -#: templates/js/translated/attachment.js:326 -msgid "Attachment" -msgstr "Συνημμένο" - -#: InvenTree/models.py:559 -msgid "Select file to attach" -msgstr "Επιλέξτε αρχείο για επισύναψη" - -#: InvenTree/models.py:567 common/models.py:3018 company/models.py:146 -#: company/models.py:457 company/models.py:514 company/models.py:830 -#: order/models.py:291 order/models.py:1288 order/models.py:1702 -#: part/admin.py:55 part/models.py:919 -#: part/templates/part/part_scheduling.html:11 -#: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:225 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2456 -#: templates/js/translated/purchase_order.js:2041 -#: templates/js/translated/purchase_order.js:2205 -#: templates/js/translated/return_order.js:780 -#: templates/js/translated/sales_order.js:1056 -#: templates/js/translated/sales_order.js:1987 -msgid "Link" -msgstr "Σύνδεσμος" - -#: InvenTree/models.py:568 build/models.py:315 part/models.py:920 -#: stock/models.py:819 -msgid "Link to external URL" -msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" - -#: InvenTree/models.py:574 templates/js/translated/attachment.js:120 -#: templates/js/translated/attachment.js:341 -msgid "Comment" -msgstr "Σχόλιο" - -#: InvenTree/models.py:575 -msgid "File comment" -msgstr "Σχόλιο αρχείου" - -#: InvenTree/models.py:583 InvenTree/models.py:584 common/models.py:2494 -#: common/models.py:2495 common/models.py:2719 common/models.py:2720 -#: common/models.py:2965 common/models.py:2966 part/models.py:3185 -#: part/models.py:3272 part/models.py:3365 part/models.py:3393 -#: plugin/models.py:250 plugin/models.py:251 -#: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3036 users/models.py:111 -msgid "User" -msgstr "Χρήστης" - -#: InvenTree/models.py:588 -msgid "upload date" -msgstr "ημερομηνία φόρτωσης" - -#: InvenTree/models.py:610 -msgid "Filename must not be empty" -msgstr "Το όνομα αρχείου δεν μπορεί να είναι κενό" - -#: InvenTree/models.py:621 -msgid "Invalid attachment directory" -msgstr "Μη διαθέσιμη τοποθεσία συνημμένου" - -#: InvenTree/models.py:651 -#, python-brace-format -msgid "Filename contains illegal character '{c}'" -msgstr "Το όνομα αρχείου περιέχει μη έγκυρους χαρακτήρες '{c}'" - -#: InvenTree/models.py:654 -msgid "Filename missing extension" -msgstr "Λείπει επέκταση ονόματος αρχείου" - -#: InvenTree/models.py:663 -msgid "Attachment with this filename already exists" -msgstr "Αρχείο με αυτό το όνομα υπάρχει ήδη" - -#: InvenTree/models.py:670 -msgid "Error renaming file" -msgstr "Σφάλμα κατά τη μετονομασία" - -#: InvenTree/models.py:846 +#: InvenTree/models.py:719 msgid "Duplicate names cannot exist under the same parent" msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχουν στον ίδιο γονέα" -#: InvenTree/models.py:863 +#: InvenTree/models.py:736 msgid "Invalid choice" msgstr "Μη έγκυρη επιλογή" -#: InvenTree/models.py:893 common/models.py:2706 common/models.py:3104 -#: common/serializers.py:370 company/models.py:613 label/models.py:120 -#: machine/models.py:24 part/models.py:855 part/models.py:3616 -#: plugin/models.py:41 report/models.py:176 stock/models.py:76 +#: InvenTree/models.py:766 common/models.py:2623 common/models.py:3036 +#: common/serializers.py:408 company/models.py:580 machine/models.py:24 +#: part/models.py:891 part/models.py:3639 plugin/models.py:51 +#: report/models.py:150 stock/models.py:73 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 -#: templates/InvenTree/settings/plugin.html:81 +#: 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 @@ -497,192 +417,188 @@ msgstr "Μη έγκυρη επιλογή" #: 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:1186 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1610 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1187 +#: templates/js/translated/part.js:1475 templates/js/translated/part.js:1611 #: templates/js/translated/part.js:2749 templates/js/translated/stock.js:2716 msgid "Name" msgstr "Όνομα" -#: InvenTree/models.py:899 build/models.py:188 -#: build/templates/build/detail.html:24 common/models.py:136 -#: company/models.py:522 company/models.py:838 +#: InvenTree/models.py:772 build/models.py:220 +#: build/templates/build/detail.html:24 common/models.py:138 +#: company/models.py:509 company/models.py:808 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:127 -#: order/models.py:277 order/models.py:1316 part/admin.py:303 part/admin.py:414 -#: part/models.py:878 part/models.py:3631 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 order/models.py:289 +#: order/models.py:1329 part/admin.py:305 part/admin.py:408 part/models.py:914 +#: part/models.py:3654 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:189 -#: report/models.py:655 report/models.py:729 -#: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:55 stock/models.py:82 stock/templates/stock/location.html:125 +#: 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:79 stock/templates/stock/location.html:125 #: 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/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2137 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2139 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:1238 -#: templates/js/translated/part.js:1483 templates/js/translated/part.js:1621 -#: templates/js/translated/part.js:1958 templates/js/translated/part.js:2355 -#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2896 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1239 +#: templates/js/translated/part.js:1484 templates/js/translated/part.js:1622 +#: templates/js/translated/part.js:1959 templates/js/translated/part.js:2355 +#: templates/js/translated/part.js:2785 templates/js/translated/part.js:2897 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1707 -#: templates/js/translated/purchase_order.js:1850 -#: templates/js/translated/purchase_order.js:2023 -#: templates/js/translated/return_order.js:314 -#: templates/js/translated/sales_order.js:802 -#: templates/js/translated/sales_order.js:1812 -#: templates/js/translated/stock.js:1512 templates/js/translated/stock.js:2057 +#: templates/js/translated/purchase_order.js:1706 +#: templates/js/translated/purchase_order.js:1849 +#: templates/js/translated/purchase_order.js:2022 +#: 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:1515 templates/js/translated/stock.js:2058 #: templates/js/translated/stock.js:2748 templates/js/translated/stock.js:2831 msgid "Description" msgstr "Περιγραφή" -#: InvenTree/models.py:900 stock/models.py:83 +#: InvenTree/models.py:773 stock/models.py:80 msgid "Description (optional)" msgstr "Περιγραφή (προαιρετική)" -#: InvenTree/models.py:909 +#: InvenTree/models.py:782 msgid "parent" msgstr "γονέας" -#: InvenTree/models.py:915 templates/js/translated/part.js:2794 +#: InvenTree/models.py:788 templates/js/translated/part.js:2794 #: templates/js/translated/stock.js:2757 msgid "Path" msgstr "Μονοπάτι" -#: InvenTree/models.py:1021 +#: InvenTree/models.py:918 msgid "Markdown notes (optional)" msgstr "Σημειώσεις Markdown (προαιρετικό)" -#: InvenTree/models.py:1050 +#: InvenTree/models.py:947 msgid "Barcode Data" msgstr "Στοιχεία Barcode" -#: InvenTree/models.py:1051 +#: InvenTree/models.py:948 msgid "Third party barcode data" msgstr "Δεδομένα barcode τρίτων" -#: InvenTree/models.py:1057 +#: InvenTree/models.py:954 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1058 +#: InvenTree/models.py:955 msgid "Unique hash of barcode data" msgstr "Μοναδικό hash δεδομένων barcode" -#: InvenTree/models.py:1111 +#: InvenTree/models.py:1008 msgid "Existing barcode found" msgstr "Βρέθηκε υπάρχων barcode" -#: InvenTree/models.py:1154 +#: InvenTree/models.py:1051 msgid "Server Error" msgstr "Σφάλμα διακομιστή" -#: InvenTree/models.py:1155 +#: InvenTree/models.py:1052 msgid "An error has been logged by the server." msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή." -#: InvenTree/serializers.py:62 part/models.py:4169 +#: InvenTree/serializers.py:63 part/models.py:4192 msgid "Must be a valid number" msgstr "Πρέπει να είναι αριθμός" -#: InvenTree/serializers.py:99 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:2993 +#: InvenTree/serializers.py:100 company/models.py:186 +#: company/templates/company/company_base.html:112 part/models.py:3001 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Νόμισμα" -#: InvenTree/serializers.py:102 +#: InvenTree/serializers.py:103 msgid "Select currency from available options" msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επιλογές" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:442 msgid "You do not have permission to change this user role." msgstr "Δεν έχετε άδεια να αλλάξετε αυτόν τον ρόλο χρήστη." -#: InvenTree/serializers.py:453 +#: InvenTree/serializers.py:454 msgid "Only superusers can create new users" msgstr "Μόνο υπερχρήστες (superusers) μπορούν να δημιουργήσουν νέους χρήστες" -#: InvenTree/serializers.py:472 +#: InvenTree/serializers.py:473 msgid "Your account has been created." msgstr "Ο λογαριασμός σας δημιουργήθηκε." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:475 msgid "Please use the password reset function to login" msgstr "Παρακαλούμε χρησιμοποιήστε τη λειτουργία επαναφοράς κωδικού πρόσβασης για να συνδεθείτε" -#: InvenTree/serializers.py:481 +#: InvenTree/serializers.py:482 msgid "Welcome to InvenTree" msgstr "Καλώς ήρθατε στο InvenTree" -#: InvenTree/serializers.py:542 -msgid "Filename" -msgstr "Όνομα αρχείου" - -#: InvenTree/serializers.py:576 +#: InvenTree/serializers.py:540 msgid "Invalid value" msgstr "Μη έγκυρη τιμή" -#: InvenTree/serializers.py:596 +#: InvenTree/serializers.py:560 msgid "Data File" msgstr "Αρχείο Δεδομένων" -#: InvenTree/serializers.py:597 +#: InvenTree/serializers.py:561 msgid "Select data file for upload" msgstr "Επιλέξτε ένα αρχείο για ανέβασμα" -#: InvenTree/serializers.py:614 +#: InvenTree/serializers.py:578 msgid "Unsupported file type" msgstr "Μη υποστηριζόμενος τύπος αρχείου" -#: InvenTree/serializers.py:620 +#: InvenTree/serializers.py:584 msgid "File is too large" msgstr "Το αρχείο είναι πολύ μεγάλο" -#: InvenTree/serializers.py:641 +#: InvenTree/serializers.py:605 msgid "No columns found in file" msgstr "Δεν βρέθηκαν στήλες στο αρχείο" -#: InvenTree/serializers.py:644 +#: InvenTree/serializers.py:608 msgid "No data rows found in file" msgstr "Δεν βρέθηκαν γραμμές δεδομένων στο αρχείο" -#: InvenTree/serializers.py:757 +#: InvenTree/serializers.py:721 msgid "No data rows provided" msgstr "Δεν παρασχέθηκαν σειρές δεδομένων" -#: InvenTree/serializers.py:760 +#: InvenTree/serializers.py:724 msgid "No data columns supplied" msgstr "Δεν δόθηκαν στήλες δεδομένων" -#: InvenTree/serializers.py:827 +#: InvenTree/serializers.py:791 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Λείπει απαιτούμενη στήλη: '{name}'" -#: InvenTree/serializers.py:836 +#: InvenTree/serializers.py:800 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Διπλή στήλη: '{col}'" -#: InvenTree/serializers.py:859 +#: InvenTree/serializers.py:840 msgid "Remote Image" msgstr "Απομακρυσμένες Εικόνες" -#: InvenTree/serializers.py:860 +#: InvenTree/serializers.py:841 msgid "URL of remote image file" msgstr "Διεύθυνση URL του αρχείου απομακρυσμένης εικόνας" -#: InvenTree/serializers.py:878 +#: InvenTree/serializers.py:859 msgid "Downloading images from remote URL is not enabled" msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη" -#: InvenTree/status.py:66 part/serializers.py:1161 +#: InvenTree/status.py:66 part/serializers.py:1166 msgid "Background worker check failed" msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε" @@ -694,223 +610,27 @@ msgstr "Δεν έχει ρυθμιστεί διεύθυνση ηλεκτρονι msgid "InvenTree system health checks failed" msgstr "Ο έλεγχος συστήματος για το Inventree απέτυχε" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 -#: InvenTree/status_codes.py:182 generic/states/tests.py:17 -#: templates/js/translated/table_filters.js:598 -msgid "Pending" -msgstr "Σε εκκρεμότητα" - -#: InvenTree/status_codes.py:13 generic/states/tests.py:18 -msgid "Placed" -msgstr "Τοποθετήθηκε" - -#: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:169 generic/states/tests.py:19 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:161 -msgid "Complete" -msgstr "Ολοκληρώθηκε" - -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 -msgid "Cancelled" -msgstr "Ακυρώθηκε" - -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 -#: InvenTree/status_codes.py:67 -msgid "Lost" -msgstr "Χάθηκε" - -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 -#: InvenTree/status_codes.py:73 -msgid "Returned" -msgstr "Επιστράφηκε" - -#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 -msgid "In Progress" -msgstr "Σε Εξέλιξη" - -#: InvenTree/status_codes.py:43 order/models.py:1564 -#: templates/js/translated/sales_order.js:1523 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1957 -msgid "Shipped" -msgstr "Αποστάλθηκε" - -#: InvenTree/status_codes.py:62 -msgid "OK" -msgstr "ΟΚ" - -#: InvenTree/status_codes.py:63 -msgid "Attention needed" -msgstr "Απαιτείται προσοχή" - -#: InvenTree/status_codes.py:64 -msgid "Damaged" -msgstr "Κατεστραμμένο" - -#: InvenTree/status_codes.py:65 -msgid "Destroyed" -msgstr "Καταστράφηκε" - -#: InvenTree/status_codes.py:66 -msgid "Rejected" -msgstr "Απορρίφθηκε" - -#: InvenTree/status_codes.py:70 -msgid "Quarantined" -msgstr "Σε Καραντίνα" - -#: InvenTree/status_codes.py:91 -msgid "Legacy stock tracking entry" -msgstr "Καταχώρηση παλαιού αποθέματος" - -#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544 -msgid "Stock item created" -msgstr "Το αντικείμενο αποθεμάτων δημιουργήθηκε" - -#: InvenTree/status_codes.py:96 -msgid "Edited stock item" -msgstr "Έγινε συγχώνευση αποθεμάτων" - -#: InvenTree/status_codes.py:97 -msgid "Assigned serial number" -msgstr "Εκχωρημένος σειριακός κωδικός" - -#: InvenTree/status_codes.py:100 -msgid "Stock counted" -msgstr "Απόθεμα που μετρήθηκε" - -#: InvenTree/status_codes.py:101 -msgid "Stock manually added" -msgstr "Προστέθηκε απόθεμα χειροκίνητα" - -#: InvenTree/status_codes.py:102 -msgid "Stock manually removed" -msgstr "Αφαιρέθηκε απόθεμα χειροκίνητα" - -#: InvenTree/status_codes.py:105 -msgid "Location changed" -msgstr "Η τοποθεσία τροποποιήθηκε" - -#: InvenTree/status_codes.py:106 -msgid "Stock updated" -msgstr "Το απόθεμα ενημερώθηκε" - -#: InvenTree/status_codes.py:109 -msgid "Installed into assembly" -msgstr "Εγκαταστάθηκε στη συναρμολόγηση" - -#: InvenTree/status_codes.py:110 -msgid "Removed from assembly" -msgstr "Αφαιρέθηκε από τη συναρμολόγηση" - -#: InvenTree/status_codes.py:112 -msgid "Installed component item" -msgstr "Εγκαταστάθηκε αντικείμενο" - -#: InvenTree/status_codes.py:113 -msgid "Removed component item" -msgstr "Αφαιρέθηκε αντικείμενο" - -#: InvenTree/status_codes.py:116 -msgid "Split from parent item" -msgstr "Έγινε διαχωρισμός από το γονεϊκό αρχείο" - -#: InvenTree/status_codes.py:117 -msgid "Split child item" -msgstr "Διαχωρίστηκε θυγατρικό στοιχείο" - -#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1855 -msgid "Merged stock items" -msgstr "Έγινε συγχώνευση αποθεμάτων" - -#: InvenTree/status_codes.py:123 -msgid "Converted to variant" -msgstr "Μετατράπηκε σε παραλλαγή" - -#: InvenTree/status_codes.py:126 -msgid "Build order output created" -msgstr "Δημιουργήθηκε η έξοδος παραγγελίας" - -#: InvenTree/status_codes.py:127 -msgid "Build order output completed" -msgstr "Η έξοδος της σειράς κατασκευής ολοκληρώθηκε" - -#: InvenTree/status_codes.py:128 -msgid "Build order output rejected" -msgstr "Η εντολή κατασκευής απορρίφθηκε" - -#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1761 -msgid "Consumed by build order" -msgstr "Κατανάλωση με εντολή κατασκευής" - -#: InvenTree/status_codes.py:132 -msgid "Shipped against Sales Order" -msgstr "Αποστολή έναντι Εντολής Πώλησης" - -#: InvenTree/status_codes.py:135 -msgid "Received against Purchase Order" -msgstr "Λήφθηκε έναντι Εντολής Αγοράς" - -#: InvenTree/status_codes.py:138 -msgid "Returned against Return Order" -msgstr "Επιστράφηκε έναντι Εντολής Αγοράς" - -#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375 -msgid "Sent to customer" -msgstr "Απεστάλη στον πελάτη" - -#: InvenTree/status_codes.py:142 -msgid "Returned from customer" -msgstr "Επιστράφηκε από πελάτη" - -#: InvenTree/status_codes.py:149 -msgid "Production" -msgstr "Παραγωγή" - -#: InvenTree/status_codes.py:185 -msgid "Return" -msgstr "Επιστροφή" - -#: InvenTree/status_codes.py:188 -msgid "Repair" -msgstr "Επισκευή" - -#: InvenTree/status_codes.py:191 -msgid "Replace" -msgstr "Αντικατάσταση" - -#: InvenTree/status_codes.py:194 -msgid "Refund" -msgstr "Επιστροφή χρημάτων" - -#: InvenTree/status_codes.py:197 -msgid "Reject" -msgstr "Απόρριψη" - -#: InvenTree/templatetags/inventree_extras.py:183 +#: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Άγνωστη βάση δεδομένων" -#: InvenTree/validators.py:31 InvenTree/validators.py:33 +#: InvenTree/validators.py:32 InvenTree/validators.py:34 msgid "Invalid physical unit" msgstr "Μη έγκυρη φυσική μονάδα" -#: InvenTree/validators.py:39 +#: InvenTree/validators.py:40 msgid "Not a valid currency code" msgstr "Μη έγκυρος κωδικός συναλλάγματος" -#: InvenTree/validators.py:121 InvenTree/validators.py:137 +#: InvenTree/validators.py:118 InvenTree/validators.py:134 msgid "Overage value must not be negative" msgstr "Η μέση τιμή δεν πρέπει να είναι αρνητική" -#: InvenTree/validators.py:139 +#: InvenTree/validators.py:136 msgid "Overage must not exceed 100%" msgstr "Η μέση τιμή δεν πρέπει να υπερβαίνει το 100%" -#: InvenTree/validators.py:145 +#: InvenTree/validators.py:142 msgid "Invalid value for overage" msgstr "Μη έγκυρη τιμή για υπέρβαση" @@ -938,62 +658,62 @@ msgstr "Πληροφορίες συστήματος" msgid "About InvenTree" msgstr "Σχετικά με το InvenTree" -#: build/api.py:238 +#: build/api.py:255 msgid "Build must be cancelled before it can be deleted" msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί" -#: build/api.py:282 part/models.py:4047 templates/js/translated/bom.js:997 -#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2521 +#: build/api.py:299 part/models.py:4070 templates/js/translated/bom.js:997 +#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Αναλώσιμο" -#: build/api.py:283 part/models.py:4041 part/templates/part/upload_bom.html:58 +#: build/api.py:300 part/models.py:4064 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 -#: templates/js/translated/build.js:2530 +#: templates/js/translated/build.js:2529 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 msgid "Optional" msgstr "Προαιρετικό" -#: build/api.py:284 templates/js/translated/table_filters.js:408 +#: build/api.py:301 templates/js/translated/table_filters.js:408 #: templates/js/translated/table_filters.js:579 msgid "Tracked" msgstr "Υπό παρακολούθηση" -#: build/api.py:286 part/admin.py:144 templates/js/translated/build.js:1741 -#: templates/js/translated/build.js:2630 -#: templates/js/translated/sales_order.js:1929 +#: build/api.py:303 part/admin.py:144 templates/js/translated/build.js:1744 +#: templates/js/translated/build.js:2629 +#: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Κατανεμημένο" -#: build/api.py:294 company/models.py:902 company/serializers.py:383 +#: build/api.py:311 company/models.py:872 company/serializers.py:359 #: 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:2562 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2561 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:228 -#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 -#: templates/js/translated/part.js:699 +#: templates/js/translated/model_renderers.js:234 +#: templates/js/translated/part.js:693 templates/js/translated/part.js:695 +#: templates/js/translated/part.js:700 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" msgstr "Διαθέσιμο" -#: build/models.py:74 build/templates/build/build_base.html:9 +#: build/models.py:85 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 -#: report/templates/report/inventree_build_order_base.html:105 -#: templates/email/build_order_completed.html:16 +#: report/templates/report/inventree_build_order_report.html:105 +#: stock/serializers.py:82 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 #: templates/js/translated/build.js:972 templates/js/translated/stock.js:2892 msgid "Build Order" msgstr "Σειρά Κατασκευής" -#: build/models.py:75 build/templates/build/build_base.html:13 +#: build/models.py:86 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 @@ -1004,708 +724,756 @@ msgstr "Σειρά Κατασκευής" msgid "Build Orders" msgstr "Δημιουργία Παραγγελιών" -#: build/models.py:116 +#: build/models.py:133 msgid "Invalid choice for parent build" msgstr "Μη έγκυρη επιλογή για γονική κατασκευή" -#: build/models.py:127 order/models.py:239 +#: build/models.py:144 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:133 +#: build/models.py:150 msgid "Build order part cannot be changed" msgstr "Εξάρτημα από εντολή κατασκευής δεν μπορεί να αλλάξει" -#: build/models.py:179 +#: build/models.py:211 msgid "Build Order Reference" msgstr "Αναφορά Παραγγελίας Κατασκευής" -#: build/models.py:180 order/models.py:442 order/models.py:898 -#: order/models.py:1276 order/models.py:1996 part/admin.py:417 -#: part/models.py:4062 part/templates/part/upload_bom.html:54 +#: build/models.py:212 order/models.py:463 order/models.py:926 +#: order/models.py:1289 order/models.py:2020 part/admin.py:411 +#: part/models.py:4085 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 -#: report/templates/report/inventree_po_report_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:26 -#: report/templates/report/inventree_so_report_base.html:28 +#: 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:2513 templates/js/translated/order.js:291 +#: templates/js/translated/build.js:2512 templates/js/translated/order.js:291 #: templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2066 -#: templates/js/translated/return_order.js:729 -#: templates/js/translated/sales_order.js:1818 +#: templates/js/translated/purchase_order.js:2065 +#: templates/js/translated/return_order.js:728 +#: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Αναφορά" -#: build/models.py:191 +#: build/models.py:223 msgid "Brief description of the build (optional)" msgstr "Σύντομη περιγραφή της κατασκευής (προαιρετικό)" -#: build/models.py:199 build/templates/build/build_base.html:183 +#: build/models.py:231 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Γονική Κατασκευή" -#: build/models.py:200 +#: build/models.py:232 msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατασκευή" -#: build/models.py:205 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1056 order/api.py:817 -#: order/models.py:1401 order/models.py:1544 order/models.py:1545 -#: part/api.py:1547 part/api.py:1841 part/models.py:390 part/models.py:3004 -#: part/models.py:3148 part/models.py:3292 part/models.py:3315 -#: part/models.py:3336 part/models.py:3358 part/models.py:3468 -#: part/models.py:3764 part/models.py:3920 part/models.py:4013 -#: part/models.py:4374 part/serializers.py:1107 part/serializers.py:1713 +#: build/models.py:237 build/templates/build/build_base.html:97 +#: build/templates/build/detail.html:29 company/models.py:1026 order/api.py:805 +#: order/models.py:1414 order/models.py:1559 order/models.py:1560 +#: part/api.py:1478 part/api.py:1772 part/models.py:395 part/models.py:3012 +#: part/models.py:3156 part/models.py:3303 part/models.py:3324 +#: part/models.py:3346 part/models.py:3477 part/models.py:3787 +#: part/models.py:3943 part/models.py:4036 part/models.py:4395 +#: part/serializers.py:1112 part/serializers.py:1718 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_base.html:109 -#: report/templates/report/inventree_po_report_base.html:27 -#: report/templates/report/inventree_return_order_report_base.html:24 -#: report/templates/report/inventree_slr_report.html:102 -#: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:267 stock/serializers.py:689 -#: templates/InvenTree/search.html:82 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:109 stock/serializers.py:157 stock/serializers.py:423 +#: stock/serializers.py:820 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:546 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1309 templates/js/translated/build.js:1740 -#: templates/js/translated/build.js:2160 templates/js/translated/build.js:2333 +#: templates/js/translated/build.js:1312 templates/js/translated/build.js:1743 +#: templates/js/translated/build.js:2162 templates/js/translated/build.js:2335 #: 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:1943 templates/js/translated/part.js:2015 +#: templates/js/translated/part.js:1944 templates/js/translated/part.js:2016 #: templates/js/translated/part.js:2324 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1304 -#: templates/js/translated/purchase_order.js:1849 -#: templates/js/translated/purchase_order.js:2008 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:710 +#: templates/js/translated/purchase_order.js:1848 +#: templates/js/translated/purchase_order.js:2007 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:709 #: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1197 -#: templates/js/translated/sales_order.js:1598 -#: templates/js/translated/sales_order.js:1796 +#: 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:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1996 +#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1997 #: templates/js/translated/stock.js:2857 templates/js/translated/stock.js:3090 #: templates/js/translated/stock.js:3236 msgid "Part" msgstr "Εξάρτημα" -#: build/models.py:213 +#: build/models.py:245 msgid "Select part to build" msgstr "Επιλέξτε τμήμα για κατασκευή" -#: build/models.py:218 +#: build/models.py:250 msgid "Sales Order Reference" msgstr "Κωδικός Παραγγελίας Πωλήσεων" -#: build/models.py:222 +#: build/models.py:254 msgid "SalesOrder to which this build is allocated" msgstr "SalesOrder στην οποία έχει διατεθεί αυτό το build" -#: build/models.py:227 build/serializers.py:964 -#: templates/js/translated/build.js:1728 -#: templates/js/translated/sales_order.js:1185 +#: build/models.py:259 build/serializers.py:999 +#: templates/js/translated/build.js:1731 +#: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Τοποθεσία Προέλευσης" -#: build/models.py:231 +#: build/models.py:263 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Επιλέξτε τοποθεσία από την οποία θα γίνει απόθεμα, για αυτή την κατασκευή (αφήστε κενό για να πάρετε από οποιαδήποτε θέση αποθήκευσης)" -#: build/models.py:236 +#: build/models.py:268 msgid "Destination Location" msgstr "Τοποθεσία Προορισμού" -#: build/models.py:240 +#: build/models.py:272 msgid "Select location where the completed items will be stored" msgstr "Επιλέξτε την τοποθεσία όπου θα αποθηκευτούν τα ολοκληρωμένα στοιχεία" -#: build/models.py:244 +#: build/models.py:276 msgid "Build Quantity" msgstr "Ποσότητα Κατασκευής" -#: build/models.py:247 +#: build/models.py:279 msgid "Number of stock items to build" msgstr "Αριθμός αντικειμένων για κατασκευή" -#: build/models.py:251 +#: build/models.py:283 msgid "Completed items" msgstr "Ολοκληρωμένα αντικείμενα" -#: build/models.py:253 +#: build/models.py:285 msgid "Number of stock items which have been completed" msgstr "Αριθμός αντικειμένων αποθέματος που έχουν ολοκληρωθεί" -#: build/models.py:257 +#: build/models.py:289 msgid "Build Status" msgstr "Κατάσταση Κατασκευής" -#: build/models.py:261 +#: build/models.py:293 msgid "Build status code" msgstr "Κωδικός κατάστασης κατασκευής" -#: build/models.py:270 build/serializers.py:280 order/serializers.py:577 -#: stock/models.py:823 stock/serializers.py:1333 +#: build/models.py:302 build/serializers.py:286 order/serializers.py:580 +#: stock/models.py:838 stock/serializers.py:74 stock/serializers.py:1449 #: templates/js/translated/purchase_order.js:1129 msgid "Batch Code" msgstr "Κωδικός Παρτίδας" -#: build/models.py:274 build/serializers.py:281 +#: build/models.py:306 build/serializers.py:287 msgid "Batch code for this build output" msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή" -#: build/models.py:277 order/models.py:304 part/models.py:1079 -#: part/templates/part/part_base.html:310 -#: templates/js/translated/return_order.js:339 -#: templates/js/translated/sales_order.js:827 +#: build/models.py:309 order/models.py:316 order/serializers.py:119 +#: part/models.py:1115 part/templates/part/part_base.html:310 +#: templates/js/translated/return_order.js:338 +#: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Ημερομηνία Δημιουργίας" -#: build/models.py:281 +#: build/models.py:313 msgid "Target completion date" msgstr "Ημερομηνία ολοκλήρωσης στόχου" -#: build/models.py:282 +#: build/models.py:314 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία." -#: build/models.py:285 order/models.py:500 order/models.py:2041 -#: templates/js/translated/build.js:2245 +#: build/models.py:317 order/models.py:521 order/models.py:2065 +#: templates/js/translated/build.js:2247 msgid "Completion Date" msgstr "Ημερομηνία ολοκλήρωσης" -#: build/models.py:291 +#: build/models.py:323 msgid "completed by" msgstr "ολοκληρώθηκε από" -#: build/models.py:299 templates/js/translated/build.js:2205 +#: build/models.py:331 templates/js/translated/build.js:2207 msgid "Issued by" msgstr "Εκδόθηκε από" -#: build/models.py:300 +#: build/models.py:332 msgid "User who issued this build order" msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής" -#: build/models.py:308 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:145 -#: order/models.py:322 order/templates/order/order_base.html:217 +#: build/models.py:340 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:147 +#: 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:228 part/models.py:1096 +#: order/templates/order/sales_order_base.html:232 part/models.py:1132 #: part/templates/part/part_base.html:390 -#: report/templates/report/inventree_build_order_base.html:158 +#: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2217 -#: templates/js/translated/purchase_order.js:1764 -#: templates/js/translated/return_order.js:359 +#: templates/js/translated/build.js:2219 +#: templates/js/translated/purchase_order.js:1763 +#: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Υπεύθυνος" -#: build/models.py:309 +#: build/models.py:341 msgid "User or group responsible for this build order" msgstr "Χρήστης ή ομάδα υπεύθυνη για αυτή την εντολή κατασκευής" -#: build/models.py:314 build/templates/build/detail.html:108 +#: build/models.py:346 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:180 -#: part/templates/part/part_base.html:383 stock/models.py:819 +#: order/templates/order/sales_order_base.html:184 +#: part/templates/part/part_base.html:383 stock/models.py:834 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Εξωτερικοί σύνδεσμοι" -#: build/models.py:319 +#: build/models.py:347 common/models.py:3178 part/models.py:956 +#: stock/models.py:834 +msgid "Link to external URL" +msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" + +#: build/models.py:351 msgid "Build Priority" msgstr "Προτεραιότητα Κατασκευής" -#: build/models.py:322 +#: build/models.py:354 msgid "Priority of this build order" msgstr "Προτεραιότητα αυτής της εντολής κατασκευής" -#: build/models.py:329 common/models.py:129 order/admin.py:18 -#: order/models.py:286 templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2142 -#: templates/js/translated/purchase_order.js:1711 -#: templates/js/translated/return_order.js:318 -#: templates/js/translated/sales_order.js:806 +#: build/models.py:361 common/models.py:131 order/admin.py:18 +#: order/models.py:298 templates/InvenTree/settings/settings_staff_js.html:146 +#: templates/js/translated/build.js:2144 +#: templates/js/translated/purchase_order.js:1710 +#: templates/js/translated/return_order.js:317 +#: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Κωδικός Έργου" -#: build/models.py:330 +#: build/models.py:362 msgid "Project code for this build order" msgstr "Κωδικός έργου για αυτήν την εντολή κατασκευής" -#: build/models.py:581 +#: build/models.py:595 build/models.py:660 +msgid "Failed to offload task to complete build allocations" +msgstr "" + +#: build/models.py:617 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Η παραγγελία κατασκευής {build} έχει ολοκληρωθεί" -#: build/models.py:587 +#: build/models.py:623 msgid "A build order has been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:805 build/models.py:880 +#: build/models.py:849 build/models.py:934 msgid "No build output specified" msgstr "Δεν καθορίστηκε έξοδος κατασκευής" -#: build/models.py:808 +#: build/models.py:852 msgid "Build output is already completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:811 +#: build/models.py:855 msgid "Build output does not match Build Order" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/models.py:884 build/serializers.py:223 build/serializers.py:262 -#: build/serializers.py:831 order/models.py:538 order/serializers.py:429 -#: order/serializers.py:572 part/serializers.py:1471 part/serializers.py:1871 -#: stock/models.py:662 stock/models.py:1474 stock/serializers.py:472 +#: build/models.py:938 build/serializers.py:219 build/serializers.py:268 +#: build/serializers.py:866 order/models.py:559 order/serializers.py:432 +#: order/serializers.py:575 part/serializers.py:1476 part/serializers.py:1876 +#: stock/models.py:677 stock/models.py:1495 stock/serializers.py:603 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:889 build/serializers.py:228 +#: build/models.py:943 build/serializers.py:224 msgid "Quantity cannot be greater than the output quantity" msgstr "Η ποσότητα δεν μπορεί να είναι μεγαλύτερη από την παραγόμενη ποσότητα" -#: build/models.py:946 build/serializers.py:533 +#: build/models.py:1003 build/serializers.py:547 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Το προϊόν κατασκευής {serial} δεν έχει περάσει όλες τις απαιτούμενες δοκιμές" -#: build/models.py:1308 +#: build/models.py:1344 +msgid "Build Order Line Item" +msgstr "" + +#: build/models.py:1369 msgid "Build object" msgstr "Αντικείμενο κατασκευής" -#: build/models.py:1322 build/models.py:1578 build/serializers.py:210 -#: build/serializers.py:247 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2516 -#: order/models.py:1259 order/models.py:1916 order/serializers.py:1335 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:416 -#: part/forms.py:48 part/models.py:3162 part/models.py:4035 +#: build/models.py:1383 build/models.py:1639 build/serializers.py:206 +#: build/serializers.py:253 build/templates/build/build_base.html:102 +#: build/templates/build/detail.html:34 common/models.py:2509 +#: order/models.py:1272 order/models.py:1931 order/serializers.py:1327 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 +#: part/forms.py:48 part/models.py:3170 part/models.py:4058 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 -#: report/templates/report/inventree_build_order_base.html:113 -#: report/templates/report/inventree_po_report_base.html:29 -#: report/templates/report/inventree_slr_report.html:104 -#: report/templates/report/inventree_so_report_base.html:29 -#: report/templates/report/inventree_test_report_base.html:90 -#: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:160 stock/serializers.py:463 +#: report/templates/report/inventree_build_order_report.html:113 +#: report/templates/report/inventree_purchase_order_report.html:29 +#: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_stock_location_report.html:104 +#: report/templates/report/inventree_test_report.html:90 +#: report/templates/report/inventree_test_report.html:170 stock/admin.py:159 +#: stock/serializers.py:125 stock/serializers.py:165 stock/serializers.py:594 #: 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:548 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:521 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1366 -#: templates/js/translated/build.js:1743 templates/js/translated/build.js:2355 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1369 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2357 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:961 -#: templates/js/translated/part.js:1811 templates/js/translated/part.js:3341 +#: templates/js/translated/model_renderers.js:236 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1812 templates/js/translated/part.js:3342 #: 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:1853 -#: templates/js/translated/purchase_order.js:2072 +#: templates/js/translated/purchase_order.js:1852 +#: templates/js/translated/purchase_order.js:2071 #: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1199 -#: templates/js/translated/sales_order.js:1518 -#: templates/js/translated/sales_order.js:1608 -#: templates/js/translated/sales_order.js:1698 -#: templates/js/translated/sales_order.js:1824 +#: 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:564 templates/js/translated/stock.js:702 #: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3021 #: templates/js/translated/stock.js:3104 msgid "Quantity" msgstr "Ποσότητα" -#: build/models.py:1323 +#: build/models.py:1384 msgid "Required quantity for build order" msgstr "Απαιτούμενη ποσότητα για την εντολή κατασκευής" -#: build/models.py:1403 +#: build/models.py:1464 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο" -#: build/models.py:1412 +#: build/models.py:1473 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})" -#: build/models.py:1422 order/models.py:1867 +#: build/models.py:1483 order/models.py:1882 msgid "Stock item is over-allocated" msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο" -#: build/models.py:1428 order/models.py:1870 +#: build/models.py:1489 order/models.py:1885 msgid "Allocation quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:1434 +#: build/models.py:1495 msgid "Quantity must be 1 for serialized stock" msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα" -#: build/models.py:1493 +#: build/models.py:1554 msgid "Selected stock item does not match BOM line" msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν ταιριάζει με τη γραμμή ΤΥ" -#: build/models.py:1565 build/serializers.py:811 order/serializers.py:1179 -#: order/serializers.py:1200 stock/serializers.py:566 stock/serializers.py:1052 -#: stock/serializers.py:1164 stock/templates/stock/item_base.html:10 +#: build/models.py:1626 build/serializers.py:846 order/serializers.py:1171 +#: order/serializers.py:1192 stock/models.py:358 stock/serializers.py:91 +#: stock/serializers.py:697 stock/serializers.py:1168 stock/serializers.py:1280 +#: 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:1742 +#: templates/js/translated/build.js:1745 #: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1198 -#: templates/js/translated/sales_order.js:1499 -#: templates/js/translated/sales_order.js:1504 -#: templates/js/translated/sales_order.js:1605 -#: templates/js/translated/sales_order.js:1692 +#: 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:677 templates/js/translated/stock.js:843 #: templates/js/translated/stock.js:2977 msgid "Stock Item" msgstr "Στοιχείο Αποθέματος" -#: build/models.py:1566 +#: build/models.py:1627 msgid "Source stock item" msgstr "Στοιχείο πηγαίου αποθέματος" -#: build/models.py:1579 +#: build/models.py:1640 msgid "Stock quantity to allocate to build" msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή" -#: build/models.py:1587 +#: build/models.py:1648 msgid "Install into" msgstr "Εγκατάσταση σε" -#: build/models.py:1588 +#: build/models.py:1649 msgid "Destination stock item" msgstr "Αποθήκη προορισμού" -#: build/serializers.py:160 build/serializers.py:840 -#: templates/js/translated/build.js:1319 +#: build/serializers.py:156 build/serializers.py:875 +#: templates/js/translated/build.js:1322 msgid "Build Output" msgstr "Κατασκευή Εξόδου" -#: build/serializers.py:172 +#: build/serializers.py:168 msgid "Build output does not match the parent build" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/serializers.py:176 +#: build/serializers.py:172 msgid "Output part does not match BuildOrder part" msgstr "Το εξερχόμενο μέρος δεν ταιριάζει με το μέρος BuildOrder" -#: build/serializers.py:180 +#: build/serializers.py:176 msgid "This build output has already been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/serializers.py:191 +#: build/serializers.py:187 msgid "This build output is not fully allocated" msgstr "Αυτή η έξοδος κατασκευής δεν έχει εκχωρηθεί πλήρως" -#: build/serializers.py:211 build/serializers.py:248 +#: build/serializers.py:207 build/serializers.py:254 msgid "Enter quantity for build output" msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής" -#: build/serializers.py:269 +#: build/serializers.py:275 msgid "Integer quantity required for trackable parts" msgstr "Ακέραιη ποσότητα που απαιτείται για ανιχνεύσιμα μέρη" -#: build/serializers.py:272 +#: build/serializers.py:278 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς ο λογαριασμός των υλικών περιέχει ανιχνεύσιμα μέρη" -#: build/serializers.py:287 order/serializers.py:585 order/serializers.py:1339 -#: stock/serializers.py:483 templates/js/translated/purchase_order.js:1153 +#: build/serializers.py:293 order/serializers.py:588 order/serializers.py:1331 +#: stock/serializers.py:614 templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Σειριακοί αριθμοί" -#: build/serializers.py:288 +#: build/serializers.py:294 msgid "Enter serial numbers for build outputs" msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής" -#: build/serializers.py:301 -msgid "Auto Allocate Serial Numbers" -msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών" - -#: build/serializers.py:302 -msgid "Automatically allocate required items with matching serial numbers" -msgstr "Αυτόματη κατανομή των απαιτούμενων στοιχείων με τους αντίστοιχους σειριακούς αριθμούς" - -#: build/serializers.py:337 stock/api.py:995 -msgid "The following serial numbers already exist or are invalid" -msgstr "Οι παρακάτω σειριακοί αριθμοί υπάρχουν ήδη ή δεν είναι έγκυροι" - -#: build/serializers.py:388 build/serializers.py:450 build/serializers.py:539 -msgid "A list of build outputs must be provided" -msgstr "Πρέπει να παρέχεται μια λίστα με τα αποτελέσματα κατασκευής" - -#: build/serializers.py:426 build/serializers.py:498 order/serializers.py:561 -#: order/serializers.py:669 order/serializers.py:1675 part/serializers.py:1127 -#: stock/serializers.py:494 stock/serializers.py:654 stock/serializers.py:750 -#: stock/serializers.py:1196 stock/serializers.py:1452 -#: stock/templates/stock/item_base.html:394 +#: build/serializers.py:299 build/serializers.py:440 build/serializers.py:512 +#: order/serializers.py:564 order/serializers.py:672 order/serializers.py:1656 +#: part/serializers.py:1132 stock/serializers.py:100 stock/serializers.py:625 +#: stock/serializers.py:785 stock/serializers.py:881 stock/serializers.py:1312 +#: stock/serializers.py:1568 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 -#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:999 -#: templates/js/translated/build.js:2370 +#: templates/js/translated/barcode.js:795 templates/js/translated/build.js:1001 +#: templates/js/translated/build.js:2372 #: templates/js/translated/purchase_order.js:1178 #: templates/js/translated/purchase_order.js:1268 -#: templates/js/translated/sales_order.js:1511 -#: templates/js/translated/sales_order.js:1619 -#: templates/js/translated/sales_order.js:1627 -#: templates/js/translated/sales_order.js:1706 +#: 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:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2201 #: templates/js/translated/stock.js:2871 msgid "Location" msgstr "Τοποθεσία" -#: build/serializers.py:427 +#: build/serializers.py:300 +msgid "Stock location for build output" +msgstr "" + +#: build/serializers.py:314 +msgid "Auto Allocate Serial Numbers" +msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών" + +#: build/serializers.py:315 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "Αυτόματη κατανομή των απαιτούμενων στοιχείων με τους αντίστοιχους σειριακούς αριθμούς" + +#: build/serializers.py:330 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/serializers.py:355 stock/api.py:1025 +msgid "The following serial numbers already exist or are invalid" +msgstr "Οι παρακάτω σειριακοί αριθμοί υπάρχουν ήδη ή δεν είναι έγκυροι" + +#: build/serializers.py:402 build/serializers.py:464 build/serializers.py:553 +msgid "A list of build outputs must be provided" +msgstr "Πρέπει να παρέχεται μια λίστα με τα αποτελέσματα κατασκευής" + +#: build/serializers.py:441 msgid "Stock location for scrapped outputs" msgstr "Θέση αποθέματος για απορριφθείσες παραγωγές" -#: build/serializers.py:433 +#: build/serializers.py:447 msgid "Discard Allocations" msgstr "Απόρριψη Κατανομών" -#: build/serializers.py:434 +#: build/serializers.py:448 msgid "Discard any stock allocations for scrapped outputs" msgstr "Απορρίψτε τυχόν κατανομές αποθέματος για παραγωγές που έχουν απορριφθεί" -#: build/serializers.py:439 +#: build/serializers.py:453 msgid "Reason for scrapping build output(s)" msgstr "Αιτία απόρριψης προϊόντων κατασκευής" -#: build/serializers.py:499 +#: build/serializers.py:513 msgid "Location for completed build outputs" msgstr "Τοποθεσία για ολοκληρωμένα προϊόντα κατασκευής" -#: build/serializers.py:505 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:922 -#: order/models.py:2020 order/serializers.py:593 stock/admin.py:165 -#: stock/serializers.py:801 stock/serializers.py:1340 +#: build/serializers.py:519 build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:62 order/models.py:950 +#: order/models.py:2044 order/serializers.py:596 stock/admin.py:164 +#: stock/serializers.py:932 stock/serializers.py:1456 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2189 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2191 #: templates/js/translated/purchase_order.js:1308 -#: templates/js/translated/purchase_order.js:1723 -#: templates/js/translated/return_order.js:331 -#: templates/js/translated/sales_order.js:819 -#: templates/js/translated/stock.js:2175 templates/js/translated/stock.js:2995 +#: templates/js/translated/purchase_order.js:1722 +#: templates/js/translated/return_order.js:330 +#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/stock.js:2176 templates/js/translated/stock.js:2995 #: templates/js/translated/stock.js:3120 msgid "Status" msgstr "Κατάσταση" -#: build/serializers.py:511 +#: build/serializers.py:525 msgid "Accept Incomplete Allocation" msgstr "Αποδοχή Ελλιπούς Δέσμευσης" -#: build/serializers.py:512 +#: build/serializers.py:526 msgid "Complete outputs if stock has not been fully allocated" msgstr "Ολοκλήρωσε τα προϊόντα εάν το απόθεμα δεν έχει δεσμευτεί πλήρως" -#: build/serializers.py:592 -msgid "Remove Allocated Stock" -msgstr "Αφαίρεση Καταχωρημένου Αποθέματος" +#: build/serializers.py:611 +msgid "Consume Allocated Stock" +msgstr "" -#: build/serializers.py:593 -msgid "Subtract any stock which has already been allocated to this build" -msgstr "Αφαίρεσε το απόθεμα που έχει κατανεμηθεί σε αυτή την κατασκευή" +#: build/serializers.py:612 +msgid "Consume any stock which has already been allocated to this build" +msgstr "" -#: build/serializers.py:599 +#: build/serializers.py:618 msgid "Remove Incomplete Outputs" msgstr "Αφαίρεση Ατελείωτων Προϊόντων" -#: build/serializers.py:600 +#: build/serializers.py:619 msgid "Delete any build outputs which have not been completed" msgstr "Διαγράψτε τυχόν προϊόντα κατασκευής που δεν έχουν ολοκληρωθεί" -#: build/serializers.py:627 +#: build/serializers.py:646 msgid "Not permitted" msgstr "Δεν επιτρέπεται" -#: build/serializers.py:628 +#: build/serializers.py:647 msgid "Accept as consumed by this build order" msgstr "Αποδοχή ως κατανάλωση για αυτή την παραγγελία κατασκευής" -#: build/serializers.py:629 +#: build/serializers.py:648 msgid "Deallocate before completing this build order" msgstr "Αποδέσμευση πριν από την ολοκλήρωση αυτής της παραγγελίας κατασκευής" -#: build/serializers.py:651 +#: build/serializers.py:678 msgid "Overallocated Stock" msgstr "Υπερ-δεσμευμένο Απόθεμα" -#: build/serializers.py:653 +#: build/serializers.py:680 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Πώς θέλετε να χειριστείτε το επιπλέον απόθεμα που έχει δεσμευτεί στην παραγγελία κατασκευής" -#: build/serializers.py:663 +#: build/serializers.py:690 msgid "Some stock items have been overallocated" msgstr "Μερικά στοιχεία αποθέματος έχουν υπερ-δεσμευτεί" -#: build/serializers.py:668 +#: build/serializers.py:695 msgid "Accept Unallocated" msgstr "Αποδοχή Μη Δεσμευμένων" -#: build/serializers.py:669 +#: build/serializers.py:696 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Αποδεχτείτε ότι αντικείμενα αποθέματος δεν έχουν δεσμευτεί πλήρως σε αυτή την παραγγελία κατασκευής" -#: build/serializers.py:679 templates/js/translated/build.js:315 +#: build/serializers.py:706 templates/js/translated/build.js:315 msgid "Required stock has not been fully allocated" msgstr "Το απαιτούμενο απόθεμα δεν έχει δεσμευτεί πλήρως" -#: build/serializers.py:684 order/serializers.py:297 order/serializers.py:1242 +#: build/serializers.py:711 order/serializers.py:300 order/serializers.py:1234 msgid "Accept Incomplete" msgstr "Αποδοχή Μη Ολοκληρωμένων" -#: build/serializers.py:685 +#: build/serializers.py:712 msgid "Accept that the required number of build outputs have not been completed" msgstr "Αποδεχτείτε ότι ο απαιτούμενος αριθμός προϊόντων κατασκευής δεν έχει ολοκληρωθεί" -#: build/serializers.py:695 templates/js/translated/build.js:319 +#: build/serializers.py:722 templates/js/translated/build.js:319 msgid "Required build quantity has not been completed" msgstr "Ο απαιτούμενος αριθμός προϊόντων δεν έχει ολοκληρωθεί" -#: build/serializers.py:704 templates/js/translated/build.js:303 +#: build/serializers.py:731 templates/js/translated/build.js:303 msgid "Build order has incomplete outputs" msgstr "Η παραγγελία κατασκευής έχει ελλιπή προϊόντα" -#: build/serializers.py:734 +#: build/serializers.py:769 msgid "Build Line" msgstr "Γραμμή Κατασκευής" -#: build/serializers.py:744 +#: build/serializers.py:779 msgid "Build output" msgstr "Προϊόν Κατασκευής" -#: build/serializers.py:752 +#: build/serializers.py:787 msgid "Build output must point to the same build" msgstr "Το προϊόν κατασκευής πρέπει να δείχνει στην ίδια κατασκευή" -#: build/serializers.py:788 +#: build/serializers.py:823 msgid "Build Line Item" msgstr "Αντικείμενο Γραμμής Κατασκευής" -#: build/serializers.py:802 +#: build/serializers.py:837 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part πρέπει να δείχνει στο ίδιο εξάρτημα με τη εντολή κατασκευής" -#: build/serializers.py:817 stock/serializers.py:1065 +#: build/serializers.py:852 stock/serializers.py:1181 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:865 order/serializers.py:1233 +#: build/serializers.py:900 order/serializers.py:1225 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:871 +#: build/serializers.py:906 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:878 +#: build/serializers.py:913 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:902 order/serializers.py:1485 +#: build/serializers.py:937 order/serializers.py:1477 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:965 +#: build/serializers.py:1000 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:973 +#: build/serializers.py:1008 msgid "Exclude Location" msgstr "" -#: build/serializers.py:974 +#: build/serializers.py:1009 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:979 +#: build/serializers.py:1014 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:980 +#: build/serializers.py:1015 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:985 +#: build/serializers.py:1020 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:986 +#: build/serializers.py:1021 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:991 +#: build/serializers.py:1026 msgid "Optional Items" msgstr "" -#: build/serializers.py:992 +#: build/serializers.py:1027 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1097 part/models.py:3930 part/models.py:4366 -#: stock/api.py:758 +#: build/serializers.py:1049 +msgid "Failed to start auto-allocation task" +msgstr "" + +#: build/serializers.py:1139 part/models.py:3953 part/models.py:4387 +#: stock/api.py:788 msgid "BOM Item" msgstr "" -#: build/serializers.py:1106 templates/js/translated/index.js:130 +#: build/serializers.py:1148 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1111 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:817 part/serializers.py:1489 +#: build/serializers.py:1153 part/admin.py:132 part/bom.py:173 +#: part/serializers.py:820 part/serializers.py:1494 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2614 templates/js/translated/part.js:709 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/build.js:2613 templates/js/translated/part.js:710 +#: templates/js/translated/part.js:2149 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1116 part/serializers.py:1491 -#: templates/js/translated/build.js:2618 +#: build/serializers.py:1158 part/serializers.py:1496 +#: templates/js/translated/build.js:2617 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1121 part/bom.py:172 part/serializers.py:1514 +#: build/serializers.py:1163 part/bom.py:172 part/serializers.py:1519 #: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1893 +#: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/tasks.py:172 +#: 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 +msgid "Pending" +msgstr "Σε εκκρεμότητα" + +#: build/status_codes.py:12 +msgid "Production" +msgstr "Παραγωγή" + +#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 +#: order/status_codes.py:70 +msgid "Cancelled" +msgstr "Ακυρώθηκε" + +#: build/status_codes.py:14 generic/states/tests.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 +msgid "Complete" +msgstr "Ολοκληρώθηκε" + +#: build/tasks.py:184 msgid "Stock required for build order" msgstr "" -#: build/tasks.py:189 +#: build/tasks.py:201 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:194 +#: build/tasks.py:206 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" @@ -1822,18 +1590,18 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Το Απόθεμα δεν έχει κατανεμηθεί πλήρως σε αυτή την Εντολή Κατασκευής" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:297 -#: order/models.py:1294 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:309 +#: order/models.py:1307 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:192 -#: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2237 templates/js/translated/part.js:1830 -#: templates/js/translated/purchase_order.js:1740 -#: templates/js/translated/purchase_order.js:2148 -#: templates/js/translated/return_order.js:347 -#: templates/js/translated/return_order.js:751 -#: templates/js/translated/sales_order.js:835 -#: templates/js/translated/sales_order.js:1867 +#: order/templates/order/sales_order_base.html:196 +#: report/templates/report/inventree_build_order_report.html:125 +#: templates/js/translated/build.js:2239 templates/js/translated/part.js:1831 +#: templates/js/translated/purchase_order.js:1739 +#: templates/js/translated/purchase_order.js:2147 +#: templates/js/translated/return_order.js:346 +#: templates/js/translated/return_order.js:750 +#: templates/js/translated/sales_order.js:871 +#: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Επιθυμητή Προθεσμία" @@ -1846,7 +1614,7 @@ msgstr "Αυτή η κατασκευή είχε προθεσμία %(target)s" #: 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:122 +#: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 #: templates/js/translated/table_filters.js:524 #: templates/js/translated/table_filters.js:626 @@ -1860,42 +1628,42 @@ msgid "Completed Outputs" msgstr "Ολοκληρωμένα Προϊόντα" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1507 order/models.py:1536 -#: order/models.py:1650 order/models.py:1804 +#: build/templates/build/detail.html:101 order/api.py:1463 order/models.py:845 +#: order/models.py:1551 order/models.py:1665 order/models.py:1819 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 -#: report/templates/report/inventree_build_order_base.html:135 -#: report/templates/report/inventree_so_report_base.html:14 +#: report/templates/report/inventree_build_order_report.html:135 +#: report/templates/report/inventree_sales_order_report.html:14 #: stock/templates/stock/item_base.html:369 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:769 -#: templates/js/translated/sales_order.js:992 +#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:1028 #: templates/js/translated/stock.js:2924 msgid "Sales Order" msgstr "Εντολές Πώλησης" #: build/templates/build/build_base.html:197 #: build/templates/build/detail.html:115 -#: report/templates/report/inventree_build_order_base.html:152 +#: 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:2154 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2156 msgid "Priority" msgstr "Προτεραιότητα" -#: build/templates/build/build_base.html:273 +#: build/templates/build/build_base.html:269 msgid "Delete Build Order" msgstr "Διαγραφή Εντολής Κατασκευής" -#: build/templates/build/build_base.html:283 +#: build/templates/build/build_base.html:279 msgid "Build Order QR Code" msgstr "Κωδικός QR Εντολής Κατασκευής" -#: build/templates/build/build_base.html:295 +#: build/templates/build/build_base.html:291 msgid "Link Barcode to Build Order" msgstr "Σύνδεση Barcode με την Εντολή Κατασκευής" @@ -1911,8 +1679,8 @@ msgstr "Προέλευση Αποθέματος" msgid "Stock can be taken from any available location." msgstr "Το απόθεμα μπορεί να ληφθεί από οποιαδήποτε διαθέσιμη τοποθεσία." -#: build/templates/build/detail.html:49 order/models.py:1430 -#: templates/js/translated/purchase_order.js:2190 +#: build/templates/build/detail.html:49 order/models.py:1443 +#: templates/js/translated/purchase_order.js:2189 msgid "Destination" msgstr "Προορισμός" @@ -1924,12 +1692,12 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:163 +#: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1377 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/build.js:1380 +#: templates/js/translated/model_renderers.js:241 #: templates/js/translated/purchase_order.js:1274 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:2190 #: templates/js/translated/stock.js:3127 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 @@ -1939,8 +1707,8 @@ 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:186 -#: templates/js/translated/build.js:2197 +#: order/templates/order/sales_order_base.html:190 +#: templates/js/translated/build.js:2199 msgid "Created" msgstr "" @@ -1949,7 +1717,7 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:202 +#: order/templates/order/sales_order_base.html:206 #: templates/js/translated/table_filters.js:689 msgid "Completed" msgstr "" @@ -2043,11 +1811,11 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:434 +#: build/templates/build/detail.html:426 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:435 +#: build/templates/build/detail.html:427 msgid "All lines have been fully allocated" msgstr "" @@ -2063,6 +1831,34 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: common/api.py:689 +msgid "Is Link" +msgstr "" + +#: common/api.py:697 +msgid "Is File" +msgstr "" + +#: common/api.py:739 +msgid "User does not have permission to delete this attachment" +msgstr "" + +#: common/currency.py:130 +msgid "Invalid currency code" +msgstr "" + +#: common/currency.py:132 +msgid "Duplicate currency code" +msgstr "" + +#: common/currency.py:137 +msgid "No valid currency codes provided" +msgstr "" + +#: common/currency.py:154 +msgid "No plugin" +msgstr "" + #: common/files.py:63 #, python-brace-format msgid "Unsupported file format: {fmt}" @@ -2101,27 +1897,27 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:71 +#: common/models.py:73 msgid "Updated" msgstr "" -#: common/models.py:72 +#: common/models.py:74 msgid "Timestamp of last update" msgstr "" -#: common/models.py:105 +#: common/models.py:107 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Unique project code" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Project description" msgstr "" -#: common/models.py:146 +#: common/models.py:148 msgid "User or group responsible for this project" msgstr "" @@ -2153,1430 +1949,1460 @@ msgstr "" msgid "No group" msgstr "" -#: common/models.py:1157 -msgid "An empty domain is not allowed." -msgstr "" - -#: common/models.py:1159 -#, python-brace-format -msgid "Invalid domain name: {domain}" -msgstr "" - -#: common/models.py:1171 -msgid "No plugin" -msgstr "" - -#: common/models.py:1259 +#: common/models.py:1213 msgid "Restart required" msgstr "" -#: common/models.py:1261 +#: common/models.py:1215 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1268 +#: common/models.py:1222 msgid "Pending migrations" msgstr "" -#: common/models.py:1269 +#: common/models.py:1223 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1274 +#: common/models.py:1228 msgid "Server Instance Name" msgstr "" -#: common/models.py:1276 +#: common/models.py:1230 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1280 +#: common/models.py:1234 msgid "Use instance name" msgstr "" -#: common/models.py:1281 +#: common/models.py:1235 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1286 +#: common/models.py:1240 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1287 +#: common/models.py:1241 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1292 company/models.py:108 company/models.py:109 +#: common/models.py:1246 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1293 +#: common/models.py:1247 msgid "Internal company name" msgstr "" -#: common/models.py:1297 +#: common/models.py:1251 msgid "Base URL" msgstr "" -#: common/models.py:1298 +#: common/models.py:1252 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1304 +#: common/models.py:1258 msgid "Default Currency" msgstr "" -#: common/models.py:1305 +#: common/models.py:1259 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1311 +#: common/models.py:1265 +msgid "Supported Currencies" +msgstr "" + +#: common/models.py:1266 +msgid "List of supported currency codes" +msgstr "" + +#: common/models.py:1272 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1313 +#: common/models.py:1274 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1316 common/models.py:1372 common/models.py:1385 -#: common/models.py:1393 common/models.py:1402 common/models.py:1411 -#: common/models.py:1613 common/models.py:1635 common/models.py:1750 -#: common/models.py:2053 +#: common/models.py:1277 common/models.py:1333 common/models.py:1346 +#: common/models.py:1354 common/models.py:1363 common/models.py:1372 +#: common/models.py:1590 common/models.py:1612 common/models.py:1727 +#: common/models.py:2046 msgid "days" msgstr "" -#: common/models.py:1320 +#: common/models.py:1281 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1321 +#: common/models.py:1282 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1326 +#: common/models.py:1287 msgid "Download from URL" msgstr "" -#: common/models.py:1328 +#: common/models.py:1289 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1334 +#: common/models.py:1295 msgid "Download Size Limit" msgstr "" -#: common/models.py:1335 +#: common/models.py:1296 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1341 +#: common/models.py:1302 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1343 +#: common/models.py:1304 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:1348 +#: common/models.py:1309 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1349 +#: common/models.py:1310 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1354 +#: common/models.py:1315 msgid "Require confirm" msgstr "" -#: common/models.py:1355 +#: common/models.py:1316 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1360 +#: common/models.py:1321 msgid "Tree Depth" msgstr "" -#: common/models.py:1362 +#: common/models.py:1323 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1368 +#: common/models.py:1329 msgid "Update Check Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1330 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1375 +#: common/models.py:1336 msgid "Automatic Backup" msgstr "" -#: common/models.py:1376 +#: common/models.py:1337 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1381 +#: common/models.py:1342 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1382 +#: common/models.py:1343 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1388 +#: common/models.py:1349 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1390 +#: common/models.py:1351 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1397 +#: common/models.py:1358 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1399 +#: common/models.py:1360 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1406 +#: common/models.py:1367 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1408 +#: common/models.py:1369 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1415 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1376 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1416 +#: common/models.py:1377 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1421 +#: common/models.py:1382 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1422 +#: common/models.py:1383 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1428 +#: common/models.py:1389 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1429 +#: common/models.py:1390 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1434 +#: common/models.py:1395 msgid "Part Revisions" msgstr "" -#: common/models.py:1435 +#: common/models.py:1396 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1401 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1402 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1407 msgid "IPN Regex" msgstr "" -#: common/models.py:1441 +#: common/models.py:1408 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1444 +#: common/models.py:1411 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1445 +#: common/models.py:1412 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1450 +#: common/models.py:1417 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1451 +#: common/models.py:1418 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1456 +#: common/models.py:1423 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1457 +#: common/models.py:1424 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1462 +#: common/models.py:1429 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1463 +#: common/models.py:1430 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1468 +#: common/models.py:1435 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1469 +#: common/models.py:1436 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1474 +#: common/models.py:1441 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1475 +#: common/models.py:1442 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1480 part/admin.py:108 part/models.py:3772 -#: report/models.py:182 stock/serializers.py:99 +#: common/models.py:1447 part/admin.py:108 part/models.py:3795 +#: report/models.py:294 report/models.py:361 report/serializers.py:90 +#: report/serializers.py:131 stock/serializers.py:227 #: templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:767 msgid "Template" msgstr "" -#: common/models.py:1481 +#: common/models.py:1448 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1486 part/admin.py:91 part/admin.py:431 part/models.py:1016 +#: common/models.py:1453 part/admin.py:91 part/admin.py:425 part/models.py:1052 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:721 msgid "Assembly" msgstr "" -#: common/models.py:1487 +#: common/models.py:1454 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1492 part/admin.py:95 part/models.py:1022 +#: common/models.py:1459 part/admin.py:95 part/models.py:1058 #: templates/js/translated/table_filters.js:729 msgid "Component" msgstr "" -#: common/models.py:1493 +#: common/models.py:1460 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1498 part/admin.py:100 part/models.py:1034 +#: common/models.py:1465 part/admin.py:100 part/models.py:1070 msgid "Purchaseable" msgstr "" -#: common/models.py:1499 +#: common/models.py:1466 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1504 part/admin.py:104 part/models.py:1040 +#: common/models.py:1471 part/admin.py:104 part/models.py:1076 #: templates/js/translated/table_filters.js:755 msgid "Salable" msgstr "" -#: common/models.py:1505 +#: common/models.py:1472 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1510 part/admin.py:113 part/models.py:1028 +#: common/models.py:1477 part/admin.py:113 part/models.py:1064 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:771 msgid "Trackable" msgstr "" -#: common/models.py:1511 +#: common/models.py:1478 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1516 part/admin.py:117 part/models.py:1050 +#: common/models.py:1483 part/admin.py:117 part/models.py:1086 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:775 msgid "Virtual" msgstr "" -#: common/models.py:1517 +#: common/models.py:1484 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1522 +#: common/models.py:1489 msgid "Show Import in Views" msgstr "" -#: common/models.py:1523 +#: common/models.py:1490 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1528 +#: common/models.py:1495 msgid "Show related parts" msgstr "" -#: common/models.py:1529 +#: common/models.py:1496 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1534 +#: common/models.py:1501 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1535 +#: common/models.py:1502 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1540 templates/js/translated/part.js:107 +#: common/models.py:1507 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1542 +#: common/models.py:1509 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1548 +#: common/models.py:1515 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1549 +#: common/models.py:1516 msgid "Format to display the part name" msgstr "" -#: common/models.py:1555 +#: common/models.py:1522 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1556 +#: common/models.py:1523 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1560 +#: common/models.py:1527 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1562 +#: common/models.py:1529 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1568 +#: common/models.py:1535 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1570 +#: common/models.py:1537 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1576 +#: common/models.py:1548 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1578 +#: common/models.py:1550 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1584 +#: common/models.py:1561 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1586 +#: common/models.py:1563 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1592 +#: common/models.py:1569 msgid "Purchase History Override" msgstr "" -#: common/models.py:1594 +#: common/models.py:1571 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1600 +#: common/models.py:1577 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1602 +#: common/models.py:1579 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1608 +#: common/models.py:1585 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1610 +#: common/models.py:1587 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1594 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1618 +#: common/models.py:1595 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1623 +#: common/models.py:1600 msgid "Active Variants Only" msgstr "" -#: common/models.py:1625 +#: common/models.py:1602 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1631 +#: common/models.py:1608 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1633 +#: common/models.py:1610 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1640 +#: common/models.py:1617 msgid "Internal Prices" msgstr "" -#: common/models.py:1641 +#: common/models.py:1618 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1646 +#: common/models.py:1623 msgid "Internal Price Override" msgstr "" -#: common/models.py:1648 +#: common/models.py:1625 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1654 +#: common/models.py:1631 msgid "Enable label printing" msgstr "" -#: common/models.py:1655 +#: common/models.py:1632 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1660 +#: common/models.py:1637 msgid "Label Image DPI" msgstr "" -#: common/models.py:1662 +#: common/models.py:1639 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1668 +#: common/models.py:1645 msgid "Enable Reports" msgstr "" -#: common/models.py:1669 +#: common/models.py:1646 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1674 templates/stats.html:25 +#: common/models.py:1651 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1675 +#: common/models.py:1652 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1680 +#: common/models.py:1657 msgid "Log Report Errors" msgstr "" -#: common/models.py:1681 +#: common/models.py:1658 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1686 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:203 +#: common/models.py:1663 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1687 +#: common/models.py:1664 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1669 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1693 +#: common/models.py:1670 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1698 +#: common/models.py:1675 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1700 +#: common/models.py:1677 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1706 +#: common/models.py:1683 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1707 +#: common/models.py:1684 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1712 +#: common/models.py:1689 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1713 +#: common/models.py:1690 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1718 +#: common/models.py:1695 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1720 +#: common/models.py:1697 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1726 +#: common/models.py:1703 msgid "Batch Code Template" msgstr "" -#: common/models.py:1728 +#: common/models.py:1705 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1733 +#: common/models.py:1710 msgid "Stock Expiry" msgstr "" -#: common/models.py:1734 +#: common/models.py:1711 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1739 +#: common/models.py:1716 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1740 +#: common/models.py:1717 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1745 +#: common/models.py:1722 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1747 +#: common/models.py:1724 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1754 +#: common/models.py:1731 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1755 +#: common/models.py:1732 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1760 +#: common/models.py:1737 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1761 +#: common/models.py:1738 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1743 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1767 +#: common/models.py:1744 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1771 +#: common/models.py:1748 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1772 +#: common/models.py:1749 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1777 +#: common/models.py:1754 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1779 +#: common/models.py:1756 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1785 +#: common/models.py:1762 +msgid "Allow Out of Stock Transfer" +msgstr "" + +#: common/models.py:1764 +msgid "Allow stock items which are not in stock to be transferred between stock locations" +msgstr "" + +#: common/models.py:1770 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1787 +#: common/models.py:1772 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1793 common/models.py:1821 common/models.py:1843 -#: common/models.py:1871 +#: common/models.py:1778 common/models.py:1806 common/models.py:1828 +#: common/models.py:1864 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1794 common/models.py:1822 common/models.py:1844 -#: common/models.py:1872 +#: common/models.py:1779 common/models.py:1807 common/models.py:1829 +#: common/models.py:1865 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1799 +#: common/models.py:1784 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1801 +#: common/models.py:1786 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1807 +#: common/models.py:1792 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1808 +#: common/models.py:1793 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1813 +#: common/models.py:1798 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1815 +#: common/models.py:1800 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1827 +#: common/models.py:1812 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1829 +#: common/models.py:1814 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1835 +#: common/models.py:1820 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1822 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1834 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1850 +#: common/models.py:1835 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1855 +#: common/models.py:1840 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1857 +#: common/models.py:1842 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1863 +#: common/models.py:1848 +msgid "Mark Shipped Orders as Complete" +msgstr "" + +#: common/models.py:1850 +msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" +msgstr "" + +#: common/models.py:1856 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1865 +#: common/models.py:1858 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1877 +#: common/models.py:1870 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1872 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1878 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1887 +#: common/models.py:1880 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1894 +#: common/models.py:1887 msgid "Enable password forgot" msgstr "" -#: common/models.py:1895 +#: common/models.py:1888 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1900 +#: common/models.py:1893 msgid "Enable registration" msgstr "" -#: common/models.py:1901 +#: common/models.py:1894 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1906 +#: common/models.py:1899 msgid "Enable SSO" msgstr "" -#: common/models.py:1907 +#: common/models.py:1900 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1912 +#: common/models.py:1905 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1914 +#: common/models.py:1907 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1920 +#: common/models.py:1913 msgid "Email required" msgstr "" -#: common/models.py:1921 +#: common/models.py:1914 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1926 +#: common/models.py:1919 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1928 +#: common/models.py:1921 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1934 +#: common/models.py:1927 msgid "Mail twice" msgstr "" -#: common/models.py:1935 +#: common/models.py:1928 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1940 +#: common/models.py:1933 msgid "Password twice" msgstr "" -#: common/models.py:1941 +#: common/models.py:1934 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1946 +#: common/models.py:1939 msgid "Allowed domains" msgstr "" -#: common/models.py:1948 +#: common/models.py:1941 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1954 +#: common/models.py:1947 msgid "Group on signup" msgstr "" -#: common/models.py:1955 +#: common/models.py:1948 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:1953 msgid "Enforce MFA" msgstr "" -#: common/models.py:1961 +#: common/models.py:1954 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1966 +#: common/models.py:1959 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1968 +#: common/models.py:1961 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1976 +#: common/models.py:1969 msgid "Check for plugin updates" msgstr "" -#: common/models.py:1977 +#: common/models.py:1970 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:1983 +#: common/models.py:1976 msgid "Enable URL integration" msgstr "" -#: common/models.py:1984 +#: common/models.py:1977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1990 +#: common/models.py:1983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1991 +#: common/models.py:1984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1997 +#: common/models.py:1990 msgid "Enable app integration" msgstr "" -#: common/models.py:1998 +#: common/models.py:1991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2004 +#: common/models.py:1997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2005 +#: common/models.py:1998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2011 +#: common/models.py:2004 msgid "Enable event integration" msgstr "" -#: common/models.py:2012 +#: common/models.py:2005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2018 +#: common/models.py:2011 msgid "Enable project codes" msgstr "" -#: common/models.py:2019 +#: common/models.py:2012 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2024 +#: common/models.py:2017 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2026 +#: common/models.py:2019 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2032 +#: common/models.py:2025 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2034 +#: common/models.py:2027 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2040 +#: common/models.py:2033 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2042 +#: common/models.py:2035 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2048 +#: common/models.py:2041 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2050 +#: common/models.py:2043 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2057 +#: common/models.py:2050 msgid "Display Users full names" msgstr "" -#: common/models.py:2058 +#: common/models.py:2051 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2063 +#: common/models.py:2056 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2064 +#: common/models.py:2057 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2076 common/models.py:2486 +#: common/models.py:2069 common/models.py:2479 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2119 +#: common/models.py:2112 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2121 +#: common/models.py:2114 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2127 +#: common/models.py:2120 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2128 +#: common/models.py:2121 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2133 +#: common/models.py:2126 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2134 +#: common/models.py:2127 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2139 +#: common/models.py:2132 msgid "Show latest parts" msgstr "" -#: common/models.py:2140 +#: common/models.py:2133 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2145 +#: common/models.py:2138 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2146 +#: common/models.py:2139 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2151 +#: common/models.py:2144 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2152 +#: common/models.py:2145 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2157 +#: common/models.py:2150 msgid "Show low stock" msgstr "" -#: common/models.py:2158 +#: common/models.py:2151 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2163 +#: common/models.py:2156 msgid "Show depleted stock" msgstr "" -#: common/models.py:2164 +#: common/models.py:2157 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2169 +#: common/models.py:2162 msgid "Show needed stock" msgstr "" -#: common/models.py:2170 +#: common/models.py:2163 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2175 +#: common/models.py:2168 msgid "Show expired stock" msgstr "" -#: common/models.py:2176 +#: common/models.py:2169 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2181 +#: common/models.py:2174 msgid "Show stale stock" msgstr "" -#: common/models.py:2182 +#: common/models.py:2175 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2187 +#: common/models.py:2180 msgid "Show pending builds" msgstr "" -#: common/models.py:2188 +#: common/models.py:2181 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2193 +#: common/models.py:2186 msgid "Show overdue builds" msgstr "" -#: common/models.py:2194 +#: common/models.py:2187 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2199 +#: common/models.py:2192 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2200 +#: common/models.py:2193 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2205 +#: common/models.py:2198 msgid "Show overdue POs" msgstr "" -#: common/models.py:2206 +#: common/models.py:2199 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2211 +#: common/models.py:2204 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2212 +#: common/models.py:2205 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2217 +#: common/models.py:2210 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2218 +#: common/models.py:2211 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2223 +#: common/models.py:2216 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2224 +#: common/models.py:2217 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2229 +#: common/models.py:2222 msgid "Show News" msgstr "" -#: common/models.py:2230 +#: common/models.py:2223 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2235 +#: common/models.py:2228 msgid "Inline label display" msgstr "" -#: common/models.py:2237 +#: common/models.py:2230 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2243 +#: common/models.py:2236 msgid "Default label printer" msgstr "" -#: common/models.py:2245 +#: common/models.py:2238 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2251 +#: common/models.py:2244 msgid "Inline report display" msgstr "" -#: common/models.py:2253 +#: common/models.py:2246 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2259 +#: common/models.py:2252 msgid "Search Parts" msgstr "" -#: common/models.py:2260 +#: common/models.py:2253 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2265 +#: common/models.py:2258 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2266 +#: common/models.py:2259 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2271 +#: common/models.py:2264 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2272 +#: common/models.py:2265 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2277 +#: common/models.py:2270 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2278 +#: common/models.py:2271 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2283 +#: common/models.py:2276 msgid "Search Categories" msgstr "" -#: common/models.py:2284 +#: common/models.py:2277 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2289 +#: common/models.py:2282 msgid "Search Stock" msgstr "" -#: common/models.py:2290 +#: common/models.py:2283 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2295 +#: common/models.py:2288 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2297 +#: common/models.py:2290 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2303 +#: common/models.py:2296 msgid "Search Locations" msgstr "" -#: common/models.py:2304 +#: common/models.py:2297 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2309 +#: common/models.py:2302 msgid "Search Companies" msgstr "" -#: common/models.py:2310 +#: common/models.py:2303 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2315 +#: common/models.py:2308 msgid "Search Build Orders" msgstr "" -#: common/models.py:2316 +#: common/models.py:2309 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2321 +#: common/models.py:2314 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2322 +#: common/models.py:2315 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2327 +#: common/models.py:2320 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2329 +#: common/models.py:2322 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2328 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2336 +#: common/models.py:2329 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2334 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2343 +#: common/models.py:2336 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2349 +#: common/models.py:2342 msgid "Search Return Orders" msgstr "" -#: common/models.py:2350 +#: common/models.py:2343 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2355 +#: common/models.py:2348 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2357 +#: common/models.py:2350 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2363 +#: common/models.py:2356 msgid "Search Preview Results" msgstr "" -#: common/models.py:2365 +#: common/models.py:2358 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2371 +#: common/models.py:2364 msgid "Regex Search" msgstr "" -#: common/models.py:2372 +#: common/models.py:2365 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2377 +#: common/models.py:2370 msgid "Whole Word Search" msgstr "" -#: common/models.py:2378 +#: common/models.py:2371 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2383 +#: common/models.py:2376 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2384 +#: common/models.py:2377 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2389 +#: common/models.py:2382 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2390 +#: common/models.py:2383 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2395 +#: common/models.py:2388 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2396 +#: common/models.py:2389 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2401 +#: common/models.py:2394 msgid "Date Format" msgstr "" -#: common/models.py:2402 +#: common/models.py:2395 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2415 part/templates/part/detail.html:41 +#: common/models.py:2408 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2416 +#: common/models.py:2409 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2421 part/templates/part/detail.html:62 +#: common/models.py:2414 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2423 +#: common/models.py:2416 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2429 +#: common/models.py:2422 msgid "Table String Length" msgstr "" -#: common/models.py:2431 +#: common/models.py:2424 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2437 +#: common/models.py:2430 msgid "Default part label template" msgstr "" -#: common/models.py:2438 +#: common/models.py:2431 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2443 +#: common/models.py:2436 msgid "Default stock item template" msgstr "" -#: common/models.py:2445 +#: common/models.py:2438 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2451 +#: common/models.py:2444 msgid "Default stock location label template" msgstr "" -#: common/models.py:2453 +#: common/models.py:2446 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2459 +#: common/models.py:2452 msgid "Default build line label template" msgstr "" -#: common/models.py:2461 +#: common/models.py:2454 msgid "The build line label template to be automatically selected" msgstr "" -#: common/models.py:2467 +#: common/models.py:2460 msgid "Receive error reports" msgstr "" -#: common/models.py:2468 +#: common/models.py:2461 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2473 +#: common/models.py:2466 msgid "Last used printing machines" msgstr "" -#: common/models.py:2474 +#: common/models.py:2467 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2517 +#: common/models.py:2487 common/models.py:2488 common/models.py:2636 +#: common/models.py:2637 common/models.py:2882 common/models.py:2883 +#: common/models.py:3193 common/models.py:3194 part/models.py:3193 +#: part/models.py:3280 part/models.py:3353 part/models.py:3381 +#: plugin/models.py:274 plugin/models.py:275 +#: report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3036 users/models.py:111 +msgid "User" +msgstr "Χρήστης" + +#: common/models.py:2510 msgid "Price break quantity" msgstr "" -#: common/models.py:2524 company/serializers.py:496 order/admin.py:42 -#: order/models.py:1333 order/models.py:2241 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1885 +#: common/models.py:2517 company/serializers.py:472 order/admin.py:42 +#: order/models.py:1346 order/models.py:2265 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1886 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:741 +#: templates/js/translated/return_order.js:740 msgid "Price" msgstr "" -#: common/models.py:2525 +#: common/models.py:2518 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2696 common/models.py:2881 +#: common/models.py:2613 common/models.py:2798 msgid "Endpoint" msgstr "" -#: common/models.py:2697 +#: common/models.py:2614 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2707 +#: common/models.py:2624 msgid "Name for this webhook" msgstr "" -#: common/models.py:2711 company/models.py:160 company/models.py:813 -#: machine/models.py:39 part/admin.py:88 part/models.py:1045 -#: plugin/models.py:56 templates/js/translated/company.js:523 +#: common/models.py:2628 company/models.py:163 company/models.py:782 +#: machine/models.py:39 part/admin.py:88 part/models.py:1081 +#: 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 @@ -3586,138 +3412,210 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:2711 +#: common/models.py:2628 msgid "Is this webhook active" msgstr "" -#: common/models.py:2727 users/models.py:159 +#: common/models.py:2644 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2728 +#: common/models.py:2645 msgid "Token for access" msgstr "" -#: common/models.py:2736 +#: common/models.py:2653 msgid "Secret" msgstr "" -#: common/models.py:2737 +#: common/models.py:2654 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2845 +#: common/models.py:2762 msgid "Message ID" msgstr "" -#: common/models.py:2846 +#: common/models.py:2763 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2854 +#: common/models.py:2771 msgid "Host" msgstr "" -#: common/models.py:2855 +#: common/models.py:2772 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2863 +#: common/models.py:2780 msgid "Header" msgstr "" -#: common/models.py:2864 +#: common/models.py:2781 msgid "Header of this message" msgstr "" -#: common/models.py:2871 +#: common/models.py:2788 msgid "Body" msgstr "" -#: common/models.py:2872 +#: common/models.py:2789 msgid "Body of this message" msgstr "" -#: common/models.py:2882 +#: common/models.py:2799 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2887 +#: common/models.py:2804 msgid "Worked on" msgstr "" -#: common/models.py:2888 +#: common/models.py:2805 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3014 +#: common/models.py:2931 msgid "Id" msgstr "" -#: common/models.py:3016 templates/js/translated/company.js:965 +#: common/models.py:2933 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:60 +#: common/models.py:2935 common/models.py:3177 company/models.py:149 +#: company/models.py:440 company/models.py:500 company/models.py:799 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 +#: part/admin.py:55 part/models.py:955 +#: 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:2456 +#: templates/js/translated/purchase_order.js:2040 +#: templates/js/translated/purchase_order.js:2204 +#: templates/js/translated/return_order.js:779 +#: templates/js/translated/sales_order.js:1092 +#: templates/js/translated/sales_order.js:2023 +msgid "Link" +msgstr "Σύνδεσμος" + +#: common/models.py:2937 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3022 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2939 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:3024 templates/js/translated/news.js:52 +#: common/models.py:2941 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Read" msgstr "" -#: common/models.py:3027 +#: common/models.py:2944 msgid "Was this news item read?" msgstr "" -#: common/models.py:3044 company/models.py:156 part/models.py:929 +#: common/models.py:2961 company/models.py:159 part/models.py:965 #: 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_base.html:35 +#: report/templates/report/inventree_return_order_report.html:35 #: stock/templates/stock/item_base.html:133 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3044 +#: common/models.py:2961 msgid "Image file" msgstr "" -#: common/models.py:3086 +#: common/models.py:2973 common/models.py:3161 +msgid "Target model type for this image" +msgstr "" + +#: common/models.py:2977 +msgid "Target model ID for this image" +msgstr "" + +#: common/models.py:3018 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3105 +#: common/models.py:3037 msgid "Unit name" msgstr "" -#: common/models.py:3112 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3044 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3113 +#: common/models.py:3045 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3120 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3052 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3121 +#: common/models.py:3053 msgid "Unit definition" msgstr "" +#: common/models.py:3111 common/models.py:3168 stock/models.py:2426 +#: templates/js/translated/attachment.js:119 +#: templates/js/translated/attachment.js:345 +msgid "Attachment" +msgstr "Συνημμένο" + +#: common/models.py:3123 +msgid "Missing file" +msgstr "Το αρχείο λείπει" + +#: common/models.py:3124 +msgid "Missing external link" +msgstr "Λείπει ο εξωτερικός σύνδεσμος" + +#: common/models.py:3169 +msgid "Select file to attach" +msgstr "Επιλέξτε αρχείο για επισύναψη" + +#: common/models.py:3184 templates/js/translated/attachment.js:120 +#: templates/js/translated/attachment.js:360 +msgid "Comment" +msgstr "Σχόλιο" + +#: common/models.py:3185 +msgid "Attachment comment" +msgstr "" + +#: common/models.py:3201 +msgid "Upload date" +msgstr "" + +#: common/models.py:3202 +msgid "Date the file was uploaded" +msgstr "" + +#: common/models.py:3206 +msgid "File size" +msgstr "" + +#: common/models.py:3206 +msgid "File size in bytes" +msgstr "" + +#: common/models.py:3244 common/serializers.py:553 +msgid "Invalid model type specified for attachment" +msgstr "" + #: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" @@ -3736,7 +3634,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:468 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:472 msgid "Items Received" msgstr "" @@ -3752,66 +3650,95 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:333 +#: common/serializers.py:371 msgid "Is Running" msgstr "" -#: common/serializers.py:339 +#: common/serializers.py:377 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:345 +#: common/serializers.py:383 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:351 +#: common/serializers.py:389 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Task ID" msgstr "" -#: common/serializers.py:366 +#: common/serializers.py:404 msgid "Unique task ID" msgstr "" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock" msgstr "" -#: common/serializers.py:368 +#: common/serializers.py:406 msgid "Lock time" msgstr "" -#: common/serializers.py:370 +#: common/serializers.py:408 msgid "Task name" msgstr "" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function" msgstr "" -#: common/serializers.py:372 +#: common/serializers.py:410 msgid "Function name" msgstr "" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Arguments" msgstr "" -#: common/serializers.py:374 +#: common/serializers.py:412 msgid "Task arguments" msgstr "" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:377 +#: common/serializers.py:415 msgid "Task keyword arguments" msgstr "" +#: common/serializers.py:525 +msgid "Filename" +msgstr "Όνομα αρχείου" + +#: common/serializers.py:532 report/api.py:100 report/serializers.py:53 +msgid "Model Type" +msgstr "" + +#: common/serializers.py:559 +msgid "User does not have permission to create or edit attachments for this model" +msgstr "" + +#: common/validators.py:77 +msgid "Minimum places cannot be greater than maximum places" +msgstr "" + +#: common/validators.py:89 +msgid "Maximum places cannot be less than minimum places" +msgstr "" + +#: common/validators.py:100 +msgid "An empty domain is not allowed." +msgstr "" + +#: common/validators.py:102 +#, python-brace-format +msgid "Invalid domain name: {domain}" +msgstr "" + #: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 @@ -3850,210 +3777,222 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/api.py:164 +#: company/api.py:144 msgid "Part is Active" msgstr "" -#: company/api.py:168 +#: company/api.py:148 msgid "Manufacturer is Active" msgstr "" -#: company/api.py:317 +#: company/api.py:281 msgid "Supplier Part is Active" msgstr "" -#: company/api.py:321 +#: company/api.py:285 msgid "Internal Part is Active" msgstr "" -#: company/api.py:325 +#: company/api.py:289 msgid "Supplier is Active" msgstr "" -#: company/models.py:114 +#: company/models.py:100 company/models.py:365 +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 stock/api.py:806 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +msgid "Company" +msgstr "" + +#: company/models.py:101 company/views.py:51 +#: templates/js/translated/search.js:192 +msgid "Companies" +msgstr "" + +#: company/models.py:117 msgid "Company description" msgstr "" -#: company/models.py:115 +#: company/models.py:118 msgid "Description of the company" msgstr "" -#: company/models.py:120 company/templates/company/company_base.html:106 +#: company/models.py:123 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:532 msgid "Website" msgstr "" -#: company/models.py:120 +#: company/models.py:123 msgid "Company website URL" msgstr "" -#: company/models.py:125 +#: company/models.py:128 msgid "Phone number" msgstr "" -#: company/models.py:127 +#: company/models.py:130 msgid "Contact phone number" msgstr "" -#: company/models.py:134 +#: company/models.py:137 msgid "Contact email address" msgstr "" -#: company/models.py:139 company/templates/company/company_base.html:145 -#: order/models.py:331 order/templates/order/order_base.html:203 +#: company/models.py:142 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:214 +#: order/templates/order/sales_order_base.html:218 msgid "Contact" msgstr "" -#: company/models.py:141 +#: company/models.py:144 msgid "Point of contact" msgstr "" -#: company/models.py:147 +#: company/models.py:150 msgid "Link to external company information" msgstr "" -#: company/models.py:160 +#: company/models.py:163 msgid "Is this company active?" msgstr "" -#: company/models.py:165 +#: company/models.py:168 msgid "is customer" msgstr "" -#: company/models.py:166 +#: company/models.py:169 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:171 +#: company/models.py:174 msgid "is supplier" msgstr "" -#: company/models.py:172 +#: company/models.py:175 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:177 +#: company/models.py:180 msgid "is manufacturer" msgstr "" -#: company/models.py:178 +#: company/models.py:181 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:186 +#: company/models.py:189 msgid "Default currency used for this company" msgstr "" -#: company/models.py:273 company/models.py:382 -#: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:776 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 -msgid "Company" -msgstr "" - -#: company/models.py:383 +#: company/models.py:366 msgid "Select company" msgstr "" -#: company/models.py:388 +#: company/models.py:371 msgid "Address title" msgstr "" -#: company/models.py:389 +#: company/models.py:372 msgid "Title describing the address entry" msgstr "" -#: company/models.py:395 +#: company/models.py:378 msgid "Primary address" msgstr "" -#: company/models.py:396 +#: company/models.py:379 msgid "Set as primary address" msgstr "" -#: company/models.py:401 templates/js/translated/company.js:914 +#: company/models.py:384 templates/js/translated/company.js:914 #: templates/js/translated/company.js:971 msgid "Line 1" msgstr "" -#: company/models.py:402 +#: company/models.py:385 msgid "Address line 1" msgstr "" -#: company/models.py:408 templates/js/translated/company.js:915 +#: company/models.py:391 templates/js/translated/company.js:915 #: templates/js/translated/company.js:977 msgid "Line 2" msgstr "" -#: company/models.py:409 +#: company/models.py:392 msgid "Address line 2" msgstr "" -#: company/models.py:415 company/models.py:416 +#: company/models.py:398 company/models.py:399 #: templates/js/translated/company.js:983 msgid "Postal code" msgstr "" -#: company/models.py:422 +#: company/models.py:405 msgid "City/Region" msgstr "" -#: company/models.py:423 +#: company/models.py:406 msgid "Postal code city/region" msgstr "" -#: company/models.py:429 +#: company/models.py:412 msgid "State/Province" msgstr "" -#: company/models.py:430 +#: company/models.py:413 msgid "State or province" msgstr "" -#: company/models.py:436 templates/js/translated/company.js:1001 +#: company/models.py:419 templates/js/translated/company.js:1001 msgid "Country" msgstr "" -#: company/models.py:437 +#: company/models.py:420 msgid "Address country" msgstr "" -#: company/models.py:443 +#: company/models.py:426 msgid "Courier shipping notes" msgstr "" -#: company/models.py:444 +#: company/models.py:427 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:450 +#: company/models.py:433 msgid "Internal shipping notes" msgstr "" -#: company/models.py:451 +#: company/models.py:434 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:458 +#: company/models.py:441 msgid "Link to address information (external)" msgstr "" -#: company/models.py:489 company/models.py:791 stock/models.py:751 -#: stock/serializers.py:266 stock/templates/stock/item_base.html:142 +#: company/models.py:463 company/models.py:574 company/models.py:792 +#: 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:475 company/models.py:760 stock/models.py:766 +#: stock/serializers.py:422 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:491 company/models.py:793 +#: company/models.py:477 company/models.py:762 msgid "Select part" msgstr "" -#: company/models.py:500 company/templates/company/company_base.html:82 +#: company/models.py:486 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:515 +#: company/templates/company/supplier_part.html:145 part/serializers.py:517 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4063,190 +4002,191 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:501 +#: company/models.py:487 msgid "Select manufacturer" msgstr "" -#: company/models.py:507 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:525 +#: company/models.py:493 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:527 #: 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:1800 -#: templates/js/translated/purchase_order.js:1852 -#: templates/js/translated/purchase_order.js:2054 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1801 +#: templates/js/translated/purchase_order.js:1851 +#: templates/js/translated/purchase_order.js:2053 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:494 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:515 +#: company/models.py:501 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:523 +#: company/models.py:510 msgid "Manufacturer part description" msgstr "" -#: company/models.py:580 company/models.py:607 company/models.py:823 -#: 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:614 +#: company/models.py:581 msgid "Parameter name" msgstr "" -#: company/models.py:620 -#: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2436 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1492 -#: templates/js/translated/stock.js:1519 +#: company/models.py:587 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2418 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1493 +#: templates/js/translated/stock.js:1522 msgid "Value" msgstr "" -#: company/models.py:621 +#: company/models.py:588 msgid "Parameter value" msgstr "" -#: company/models.py:628 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1009 part/models.py:3623 +#: company/models.py:595 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1045 part/models.py:3646 #: part/templates/part/part_base.html:284 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1511 -#: templates/js/translated/part.js:1615 templates/js/translated/part.js:2370 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1512 +#: templates/js/translated/part.js:1616 templates/js/translated/part.js:2370 msgid "Units" msgstr "" -#: company/models.py:629 +#: company/models.py:596 msgid "Parameter units" msgstr "" -#: company/models.py:731 +#: company/models.py:648 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:452 +#: stock/models.py:777 stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:1600 +#: templates/js/translated/purchase_order.js:752 +#: templates/js/translated/stock.js:2280 +msgid "Supplier Part" +msgstr "" + +#: company/models.py:700 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:738 +#: company/models.py:707 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:752 +#: company/models.py:721 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:801 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:465 +#: company/models.py:770 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:499 plugin/builtin/suppliers/digikey.py:25 +#: part/serializers.py:501 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:1768 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1769 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1690 +#: templates/js/translated/purchase_order.js:1689 #: templates/js/translated/table_filters.js:804 msgid "Supplier" msgstr "" -#: company/models.py:802 +#: company/models.py:771 msgid "Select supplier" msgstr "" -#: company/models.py:808 part/serializers.py:510 +#: company/models.py:777 part/serializers.py:512 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:814 +#: company/models.py:783 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:824 +#: company/models.py:793 msgid "Select manufacturer part" msgstr "" -#: company/models.py:831 +#: company/models.py:800 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:839 +#: company/models.py:809 msgid "Supplier part description" msgstr "" -#: company/models.py:846 company/templates/company/supplier_part.html:187 -#: part/admin.py:418 part/models.py:4070 part/templates/part/upload_bom.html:59 +#: company/models.py:816 company/templates/company/supplier_part.html:187 +#: part/admin.py:412 part/models.py:4093 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 -#: report/templates/report/inventree_po_report_base.html:32 -#: report/templates/report/inventree_return_order_report_base.html:27 -#: report/templates/report/inventree_slr_report.html:105 -#: report/templates/report/inventree_so_report_base.html:32 -#: stock/serializers.py:579 +#: 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:710 msgid "Note" msgstr "" -#: company/models.py:855 part/models.py:1967 +#: company/models.py:825 part/models.py:2003 msgid "base cost" msgstr "" -#: company/models.py:856 part/models.py:1968 +#: company/models.py:826 part/models.py:2004 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:863 company/templates/company/supplier_part.html:160 -#: stock/admin.py:224 stock/models.py:782 stock/serializers.py:1350 +#: company/models.py:833 company/templates/company/supplier_part.html:160 +#: stock/admin.py:228 stock/models.py:797 stock/serializers.py:1466 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2424 msgid "Packaging" msgstr "" -#: company/models.py:864 +#: company/models.py:834 msgid "Part packaging" msgstr "" -#: company/models.py:869 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 +#: company/models.py:839 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 #: 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:2085 -#: templates/js/translated/purchase_order.js:2102 +#: templates/js/translated/purchase_order.js:2084 +#: templates/js/translated/purchase_order.js:2101 msgid "Pack Quantity" msgstr "" -#: company/models.py:871 +#: company/models.py:841 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:890 part/models.py:1974 +#: company/models.py:860 part/models.py:2010 msgid "multiple" msgstr "" -#: company/models.py:891 +#: company/models.py:861 msgid "Order multiple" msgstr "" -#: company/models.py:903 +#: company/models.py:873 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:909 +#: company/models.py:879 msgid "Availability Updated" msgstr "" -#: company/models.py:910 +#: company/models.py:880 msgid "Date of last update of availability data" msgstr "" -#: company/serializers.py:163 +#: company/serializers.py:161 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:381 part/admin.py:126 +#: company/serializers.py:357 part/admin.py:126 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4257,8 +4197,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:306 -#: templates/js/translated/part.js:814 templates/js/translated/part.js:1218 +#: templates/js/translated/model_renderers.js:312 +#: templates/js/translated/part.js:815 templates/js/translated/part.js:1219 msgid "Inactive" msgstr "" @@ -4293,11 +4233,11 @@ msgstr "" #: company/templates/company/manufacturer_part.html:51 #: company/templates/company/supplier_part.html:83 #: part/templates/part/part_thumb.html:20 -#: report/templates/report/inventree_build_order_base.html:98 -#: report/templates/report/inventree_po_report_base.html:40 -#: report/templates/report/inventree_so_report_base.html:40 -#: report/templates/report/inventree_test_report_base.html:84 -#: report/templates/report/inventree_test_report_base.html:163 +#: report/templates/report/inventree_build_order_report.html:98 +#: report/templates/report/inventree_purchase_order_report.html:40 +#: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_test_report.html:84 +#: report/templates/report/inventree_test_report.html:163 msgid "Part image" msgstr "" @@ -4316,15 +4256,15 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:910 -#: order/models.py:2008 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:804 -#: stock/models.py:805 stock/serializers.py:1100 +#: company/templates/company/company_base.html:92 order/models.py:938 +#: order/models.py:2032 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:819 +#: stock/models.py:820 stock/serializers.py:1216 #: 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:296 -#: templates/js/translated/sales_order.js:784 +#: templates/js/translated/return_order.js:295 +#: templates/js/translated/sales_order.js:820 #: templates/js/translated/stock.js:2959 #: templates/js/translated/table_filters.js:808 msgid "Customer" @@ -4334,10 +4274,10 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:124 order/models.py:341 +#: 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:221 +#: order/templates/order/sales_order_base.html:225 msgid "Address" msgstr "" @@ -4346,7 +4286,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:528 +#: part/templates/part/part_base.html:527 msgid "Remove Image" msgstr "" @@ -4355,19 +4295,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:530 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:560 +#: part/templates/part/part_base.html:559 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:614 +#: part/templates/part/part_base.html:613 msgid "Download Image" msgstr "" @@ -4520,7 +4460,7 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:454 +#: company/templates/company/supplier_part.html:97 order/api.py:458 msgid "Internal Part" msgstr "" @@ -4530,7 +4470,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:821 +#: part/admin.py:122 part/serializers.py:824 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4550,8 +4490,8 @@ msgstr "" msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:206 -#: templates/js/translated/part.js:1422 +#: company/templates/company/manufacturer_part.html:196 +#: templates/js/translated/part.js:1423 msgid "Add Parameter" msgstr "" @@ -4579,15 +4519,6 @@ msgstr "" msgid "Addresses" msgstr "" -#: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:448 -#: stock/models.py:762 stock/templates/stock/item_base.html:233 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2279 -msgid "Supplier Part" -msgstr "" - #: company/templates/company/supplier_part.html:50 #: templates/js/translated/company.js:1526 msgid "Supplier part actions" @@ -4630,11 +4561,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 part/bom.py:279 -#: part/bom.py:311 part/serializers.py:509 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 +#: part/bom.py:311 part/serializers.py:511 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1787 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1851 -#: templates/js/translated/purchase_order.js:2029 +#: templates/js/translated/purchase_order.js:1850 +#: templates/js/translated/purchase_order.js:2028 msgid "SKU" msgstr "" @@ -4643,12 +4574,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:199 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:200 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 #: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4680,15 +4611,15 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:820 part/stocktake.py:223 +#: part/serializers.py:823 part/stocktake.py:224 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 -#: stock/serializers.py:787 stock/serializers.py:951 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:68 +#: stock/serializers.py:918 stock/serializers.py:1082 #: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:184 -#: stock/templates/stock/location.html:196 +#: stock/templates/stock/location.html:191 +#: stock/templates/stock/location.html:203 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1061 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2766 #: users/models.py:206 msgid "Stock Items" @@ -4715,134 +4646,56 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:51 templates/js/translated/search.js:192 -msgid "Companies" -msgstr "" - #: company/views.py:52 msgid "New Company" msgstr "" -#: label/api.py:247 -msgid "Error printing label" -msgstr "" +#: generic/states/tests.py:18 order/status_codes.py:13 +msgid "Placed" +msgstr "Τοποθετήθηκε" -#: label/models.py:120 -msgid "Label name" -msgstr "" - -#: label/models.py:128 -msgid "Label description" -msgstr "" - -#: label/models.py:136 -msgid "Label" -msgstr "" - -#: label/models.py:137 -msgid "Label template file" -msgstr "" - -#: label/models.py:143 part/models.py:3494 report/models.py:324 -#: templates/js/translated/part.js:2900 -#: templates/js/translated/table_filters.js:481 -msgid "Enabled" -msgstr "" - -#: label/models.py:144 -msgid "Label template is enabled" -msgstr "" - -#: label/models.py:149 -msgid "Width [mm]" -msgstr "" - -#: label/models.py:150 -msgid "Label width, specified in mm" -msgstr "" - -#: label/models.py:156 -msgid "Height [mm]" -msgstr "" - -#: label/models.py:157 -msgid "Label height, specified in mm" -msgstr "" - -#: label/models.py:163 report/models.py:317 -msgid "Filename Pattern" -msgstr "" - -#: label/models.py:164 -msgid "Pattern for generating label filenames" -msgstr "" - -#: label/models.py:313 label/models.py:352 label/models.py:377 -#: label/models.py:412 -msgid "Query filters (comma-separated list of key=value pairs)" -msgstr "" - -#: label/models.py:314 label/models.py:353 label/models.py:378 -#: label/models.py:413 report/models.py:345 report/models.py:496 -#: report/models.py:532 report/models.py:568 report/models.py:750 -msgid "Filters" -msgstr "" - -#: label/templates/label/part/part_label.html:31 -#: label/templates/label/stockitem/qr.html:21 -#: label/templates/label/stocklocation/qr.html:20 -#: templates/allauth_2fa/setup.html:18 -msgid "QR Code" -msgstr "" - -#: label/templates/label/part/part_label_code128.html:31 -#: label/templates/label/stocklocation/qr_and_text.html:31 -#: templates/qr_code.html:7 -msgid "QR code" -msgstr "" - -#: machine/machine_types/label_printer.py:217 +#: machine/machine_types/label_printer.py:218 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:218 +#: machine/machine_types/label_printer.py:219 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:234 order/api.py:1511 -#: templates/js/translated/sales_order.js:1042 +#: machine/machine_types/label_printer.py:235 order/api.py:1467 +#: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:237 +#: machine/machine_types/label_printer.py:238 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:245 +#: machine/machine_types/label_printer.py:246 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:252 +#: machine/machine_types/label_printer.py:253 msgid "Scope the printer to a specific location" msgstr "" @@ -4902,18 +4755,19 @@ msgstr "" msgid "Config type" msgstr "" -#: order/admin.py:30 order/models.py:89 -#: report/templates/report/inventree_po_report_base.html:31 -#: report/templates/report/inventree_so_report_base.html:31 +#: 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:2126 -#: templates/js/translated/sales_order.js:1847 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" -#: order/api.py:157 order/templates/order/order_base.html:118 +#: order/api.py:157 order/serializers.py:90 +#: order/templates/order/order_base.html:118 #: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/sales_order_base.html:122 msgid "Order Status" msgstr "" @@ -4926,567 +4780,623 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:433 order/api.py:813 order/models.py:1382 order/models.py:1489 -#: order/models.py:1535 order/models.py:1649 order/models.py:1803 -#: order/models.py:2207 order/models.py:2258 -#: templates/js/translated/sales_order.js:1488 +#: order/api.py:435 order/api.py:801 order/models.py:1395 order/models.py:1504 +#: order/models.py:1550 order/models.py:1664 order/models.py:1818 +#: order/models.py:2231 order/models.py:2282 +#: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:437 order/api.py:834 +#: order/api.py:439 order/api.py:822 msgid "Order Complete" msgstr "" -#: order/api.py:458 +#: order/api.py:462 msgid "Order Pending" msgstr "" -#: order/api.py:1505 order/models.py:1383 order/models.py:1490 -#: order/templates/order/order_base.html:9 +#: order/api.py:1461 order/models.py:380 order/models.py:1396 +#: order/models.py:1505 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 -#: report/templates/report/inventree_po_report_base.html:14 -#: stock/templates/stock/item_base.html:176 +#: report/templates/report/inventree_purchase_order_report.html:14 +#: stock/serializers.py:118 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1746 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:1674 -#: templates/js/translated/stock.js:2259 templates/js/translated/stock.js:2907 +#: templates/js/translated/purchase_order.js:1673 +#: templates/js/translated/stock.js:2260 templates/js/translated/stock.js:2907 msgid "Purchase Order" msgstr "" -#: order/api.py:1509 order/models.py:2208 order/models.py:2259 -#: order/templates/order/return_order_base.html:9 +#: order/api.py:1465 order/models.py:1981 order/models.py:2232 +#: order/models.py:2283 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 -#: report/templates/report/inventree_return_order_report_base.html:13 -#: templates/js/translated/return_order.js:281 +#: report/templates/report/inventree_return_order_report.html:13 +#: templates/js/translated/return_order.js:280 #: templates/js/translated/stock.js:2941 msgid "Return Order" msgstr "" -#: order/models.py:90 +#: order/models.py:91 msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:96 order/serializers.py:70 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:99 order/serializers.py:71 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:247 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:278 +#: order/models.py:290 msgid "Order description (optional)" msgstr "" -#: order/models.py:287 +#: order/models.py:299 msgid "Select project code for this order" msgstr "" -#: order/models.py:291 order/models.py:1288 order/models.py:1702 +#: order/models.py:303 order/models.py:1301 order/models.py:1717 msgid "Link to external page" msgstr "" -#: order/models.py:299 +#: order/models.py:311 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:313 +#: order/models.py:325 msgid "Created By" msgstr "" -#: order/models.py:321 +#: order/models.py:333 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:332 +#: order/models.py:344 msgid "Point of contact for this order" msgstr "" -#: order/models.py:342 +#: order/models.py:354 msgid "Company address for this order" msgstr "" -#: order/models.py:443 order/models.py:899 +#: order/models.py:464 order/models.py:927 msgid "Order reference" msgstr "" -#: order/models.py:451 order/models.py:923 +#: order/models.py:472 order/models.py:951 msgid "Purchase order status" msgstr "" -#: order/models.py:466 +#: order/models.py:487 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:477 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1703 +#: order/models.py:498 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1702 msgid "Supplier Reference" msgstr "" -#: order/models.py:478 +#: order/models.py:499 msgid "Supplier order reference code" msgstr "" -#: order/models.py:487 +#: order/models.py:508 msgid "received by" msgstr "" -#: order/models.py:493 order/models.py:2034 +#: order/models.py:514 order/models.py:2058 msgid "Issue Date" msgstr "" -#: order/models.py:494 order/models.py:2035 +#: order/models.py:515 order/models.py:2059 msgid "Date order was issued" msgstr "" -#: order/models.py:501 order/models.py:2042 +#: order/models.py:522 order/models.py:2066 msgid "Date order was completed" msgstr "" -#: order/models.py:545 +#: order/models.py:566 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:739 +#: order/models.py:760 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:911 +#: order/models.py:939 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:934 order/models.py:2027 +#: order/models.py:962 order/models.py:2051 msgid "Customer Reference " msgstr "" -#: order/models.py:935 order/models.py:2028 +#: order/models.py:963 order/models.py:2052 msgid "Customer order reference code" msgstr "" -#: order/models.py:939 order/models.py:1656 -#: templates/js/translated/sales_order.js:843 -#: templates/js/translated/sales_order.js:1024 +#: order/models.py:967 order/models.py:1671 +#: templates/js/translated/sales_order.js:879 +#: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:948 +#: order/models.py:976 msgid "shipped by" msgstr "" -#: order/models.py:999 -msgid "Order cannot be completed as no parts have been assigned" +#: order/models.py:1025 +msgid "Order is already complete" msgstr "" -#: order/models.py:1004 +#: order/models.py:1028 +msgid "Order is already cancelled" +msgstr "" + +#: order/models.py:1032 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1008 templates/js/translated/sales_order.js:506 +#: order/models.py:1036 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1013 +#: order/models.py:1041 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1260 +#: order/models.py:1273 msgid "Item quantity" msgstr "" -#: order/models.py:1277 +#: order/models.py:1290 msgid "Line item reference" msgstr "" -#: order/models.py:1284 +#: order/models.py:1297 msgid "Line item notes" msgstr "" -#: order/models.py:1296 +#: order/models.py:1309 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1317 +#: order/models.py:1330 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1323 +#: order/models.py:1336 msgid "Context" msgstr "" -#: order/models.py:1324 +#: order/models.py:1337 msgid "Additional context for this line" msgstr "" -#: order/models.py:1334 +#: order/models.py:1347 msgid "Unit price" msgstr "" -#: order/models.py:1367 +#: order/models.py:1380 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1374 +#: order/models.py:1387 msgid "deleted" msgstr "" -#: order/models.py:1402 +#: order/models.py:1415 msgid "Supplier part" msgstr "" -#: order/models.py:1409 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1869 templates/js/translated/part.js:1901 +#: order/models.py:1422 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1870 templates/js/translated/part.js:1902 #: templates/js/translated/purchase_order.js:1306 -#: templates/js/translated/purchase_order.js:2170 -#: templates/js/translated/return_order.js:764 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/return_order.js:763 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1410 +#: order/models.py:1423 msgid "Number of items received" msgstr "" -#: order/models.py:1418 stock/models.py:923 stock/serializers.py:400 +#: order/models.py:1431 stock/models.py:938 stock/serializers.py:556 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2311 msgid "Purchase Price" msgstr "" -#: order/models.py:1419 +#: order/models.py:1432 msgid "Unit purchase price" msgstr "" -#: order/models.py:1434 +#: order/models.py:1447 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1523 +#: order/models.py:1538 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1528 +#: order/models.py:1543 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1554 part/templates/part/part_pricing.html:107 +#: order/models.py:1569 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:1555 +#: order/models.py:1570 msgid "Unit sale price" msgstr "" -#: order/models.py:1565 +#: order/models.py:1579 order/status_codes.py:43 +#: 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:1580 msgid "Shipped quantity" msgstr "" -#: order/models.py:1657 +#: order/models.py:1672 msgid "Date of shipment" msgstr "" -#: order/models.py:1663 templates/js/translated/sales_order.js:1036 +#: order/models.py:1678 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1664 +#: order/models.py:1679 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1672 +#: order/models.py:1687 msgid "Checked By" msgstr "" -#: order/models.py:1673 +#: order/models.py:1688 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1680 order/models.py:1893 order/serializers.py:1350 -#: order/serializers.py:1460 templates/js/translated/model_renderers.js:448 +#: order/models.py:1695 order/models.py:1908 order/serializers.py:1342 +#: order/serializers.py:1452 templates/js/translated/model_renderers.js:454 msgid "Shipment" msgstr "" -#: order/models.py:1681 +#: order/models.py:1696 msgid "Shipment number" msgstr "" -#: order/models.py:1689 +#: order/models.py:1704 msgid "Tracking Number" msgstr "" -#: order/models.py:1690 +#: order/models.py:1705 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1697 +#: order/models.py:1712 msgid "Invoice Number" msgstr "" -#: order/models.py:1698 +#: order/models.py:1713 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1718 +#: order/models.py:1733 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1721 +#: order/models.py:1736 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1839 order/models.py:1841 +#: order/models.py:1854 order/models.py:1856 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1848 +#: order/models.py:1863 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1851 +#: order/models.py:1866 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1854 +#: order/models.py:1869 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1873 order/serializers.py:1227 +#: order/models.py:1888 order/serializers.py:1219 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1876 +#: order/models.py:1891 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1877 plugin/base/barcodes/api.py:481 +#: order/models.py:1892 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1885 +#: order/models.py:1900 msgid "Line" msgstr "" -#: order/models.py:1894 +#: order/models.py:1909 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1907 order/models.py:2215 -#: templates/js/translated/return_order.js:722 +#: order/models.py:1922 order/models.py:2239 +#: templates/js/translated/return_order.js:721 msgid "Item" msgstr "" -#: order/models.py:1908 +#: order/models.py:1923 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1917 +#: order/models.py:1932 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1997 +#: order/models.py:2021 msgid "Return Order reference" msgstr "" -#: order/models.py:2009 +#: order/models.py:2033 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2021 +#: order/models.py:2045 msgid "Return order status" msgstr "" -#: order/models.py:2200 +#: order/models.py:2224 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2216 +#: order/models.py:2240 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2222 +#: order/models.py:2246 msgid "Received Date" msgstr "" -#: order/models.py:2223 +#: order/models.py:2247 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2234 templates/js/translated/return_order.js:733 +#: order/models.py:2258 templates/js/translated/return_order.js:732 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2235 +#: order/models.py:2259 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2242 +#: order/models.py:2266 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:283 +#: order/serializers.py:79 order/templates/order/po_sidebar.html:5 +#: order/templates/order/return_order_detail.html:18 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_purchase_order_report.html:22 +#: report/templates/report/inventree_return_order_report.html:19 +#: report/templates/report/inventree_sales_order_report.html:22 +msgid "Line Items" +msgstr "" + +#: order/serializers.py:83 +msgid "Completed Lines" +msgstr "" + +#: order/serializers.py:286 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:298 order/serializers.py:1243 +#: order/serializers.py:301 order/serializers.py:1235 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:308 order/serializers.py:1253 +#: order/serializers.py:311 order/serializers.py:1245 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:436 +#: order/serializers.py:439 msgid "Order is not open" msgstr "" -#: order/serializers.py:457 +#: order/serializers.py:460 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:459 +#: order/serializers.py:462 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:472 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:475 +#: order/serializers.py:478 msgid "Merge Items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:480 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:495 +#: order/serializers.py:498 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:501 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:509 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:507 +#: order/serializers.py:510 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:546 order/serializers.py:1321 +#: order/serializers.py:549 order/serializers.py:1313 msgid "Line Item" msgstr "" -#: order/serializers.py:552 +#: order/serializers.py:555 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:562 order/serializers.py:670 order/serializers.py:1676 +#: order/serializers.py:565 order/serializers.py:673 order/serializers.py:1657 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:578 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:581 templates/js/translated/purchase_order.js:1130 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:586 templates/js/translated/purchase_order.js:1154 +#: order/serializers.py:589 templates/js/translated/purchase_order.js:1154 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:597 templates/js/translated/barcode.js:52 +#: order/serializers.py:600 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:598 +#: order/serializers.py:601 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:614 +#: order/serializers.py:617 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:638 +#: order/serializers.py:641 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:686 order/serializers.py:1692 +#: order/serializers.py:689 order/serializers.py:1673 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:702 +#: order/serializers.py:705 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:713 +#: order/serializers.py:716 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1070 +#: order/serializers.py:1062 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1130 +#: order/serializers.py:1122 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1191 order/serializers.py:1330 +#: order/serializers.py:1183 order/serializers.py:1322 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1210 +#: order/serializers.py:1202 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1340 +#: order/serializers.py:1332 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1362 order/serializers.py:1468 +#: order/serializers.py:1354 order/serializers.py:1460 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1365 order/serializers.py:1471 +#: order/serializers.py:1357 order/serializers.py:1463 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1412 +#: order/serializers.py:1404 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1419 +#: order/serializers.py:1411 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1646 +#: order/serializers.py:1627 msgid "Return order line item" msgstr "" -#: order/serializers.py:1652 +#: order/serializers.py:1633 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1655 +#: order/serializers.py:1636 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1684 +#: order/serializers.py:1665 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1762 +#: order/serializers.py:1743 msgid "Line price currency" msgstr "" +#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +msgid "Lost" +msgstr "Χάθηκε" + +#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +msgid "Returned" +msgstr "Επιστράφηκε" + +#: order/status_codes.py:40 order/status_codes.py:67 +msgid "In Progress" +msgstr "Σε Εξέλιξη" + +#: order/status_codes.py:85 +msgid "Return" +msgstr "Επιστροφή" + +#: order/status_codes.py:88 +msgid "Repair" +msgstr "Επισκευή" + +#: order/status_codes.py:91 +msgid "Replace" +msgstr "Αντικατάσταση" + +#: order/status_codes.py:94 +msgid "Refund" +msgstr "Επιστροφή χρημάτων" + +#: order/status_codes.py:97 +msgid "Reject" +msgstr "Απόρριψη" + #: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" @@ -5553,7 +5463,7 @@ msgstr "" #: order/templates/order/order_base.html:84 #: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:97 msgid "Complete Order" msgstr "" @@ -5563,13 +5473,13 @@ msgstr "" #: order/templates/order/order_base.html:106 #: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:106 +#: order/templates/order/sales_order_base.html:110 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:111 +#: order/templates/order/sales_order_base.html:115 msgid "Order Description" msgstr "" @@ -5578,19 +5488,19 @@ msgid "No suppplier information available" msgstr "" #: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:157 +#: order/templates/order/sales_order_base.html:161 msgid "Completed Line Items" msgstr "" #: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:163 -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:167 +#: order/templates/order/sales_order_base.html:177 msgid "Incomplete" msgstr "" #: order/templates/order/order_base.html:179 #: order/templates/order/return_order_base.html:157 -#: report/templates/report/inventree_build_order_base.html:121 +#: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" @@ -5600,15 +5510,15 @@ msgstr "" #: order/templates/order/order_base.html:228 #: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/sales_order_base.html:243 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:318 +#: order/templates/order/order_base.html:314 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:330 +#: order/templates/order/order_base.html:326 msgid "Link Barcode to Purchase Order" msgstr "" @@ -5662,11 +5572,11 @@ 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:529 -#: templates/js/translated/build.js:1626 +#: templates/js/translated/build.js:1629 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1236 -#: templates/js/translated/return_order.js:506 -#: templates/js/translated/sales_order.js:1109 +#: templates/js/translated/return_order.js:505 +#: templates/js/translated/sales_order.js:1145 #: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -5708,15 +5618,6 @@ msgstr "" msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/po_sidebar.html:5 -#: order/templates/order/return_order_detail.html:18 -#: order/templates/order/so_sidebar.html:5 -#: report/templates/report/inventree_po_report_base.html:22 -#: report/templates/report/inventree_return_order_report_base.html:19 -#: report/templates/report/inventree_so_report_base.html:22 -msgid "Line Items" -msgstr "" - #: order/templates/order/po_sidebar.html:7 msgid "Received Stock" msgstr "" @@ -5729,7 +5630,7 @@ msgstr "" #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 #: templates/js/translated/purchase_order.js:414 -#: templates/js/translated/return_order.js:459 +#: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" msgstr "" @@ -5778,30 +5679,30 @@ msgid "Print packing list" msgstr "" #: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:151 -#: templates/js/translated/return_order.js:309 -#: templates/js/translated/sales_order.js:797 +#: order/templates/order/sales_order_base.html:155 +#: 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:235 +#: order/templates/order/sales_order_base.html:239 #: 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:1072 -#: templates/js/translated/purchase_order.js:1753 -#: templates/js/translated/return_order.js:381 -#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/part.js:1073 +#: templates/js/translated/purchase_order.js:1752 +#: 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:263 +#: order/templates/order/return_order_base.html:259 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:275 +#: order/templates/order/return_order_base.html:271 msgid "Link Barcode to Return Order" msgstr "" @@ -5819,25 +5720,30 @@ msgid "Ship Items" msgstr "" #: order/templates/order/sales_order_base.html:92 -#: templates/js/translated/sales_order.js:484 +#: order/templates/order/sales_order_base.html:93 +msgid "Mark As Shipped" +msgstr "" + +#: order/templates/order/sales_order_base.html:96 +#: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:131 +#: order/templates/order/sales_order_base.html:135 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:169 +#: order/templates/order/sales_order_base.html:173 #: 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:312 +#: order/templates/order/sales_order_base.html:321 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:324 +#: order/templates/order/sales_order_base.html:333 msgid "Link Barcode to Sales Order" msgstr "" @@ -5881,34 +5787,34 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:39 part/admin.py:404 part/models.py:3921 part/stocktake.py:218 -#: stock/admin.py:153 +#: part/admin.py:39 part/admin.py:398 part/models.py:3944 part/stocktake.py:219 +#: stock/admin.py:152 msgid "Part ID" msgstr "" -#: part/admin.py:41 part/admin.py:411 part/models.py:3922 part/stocktake.py:219 -#: stock/admin.py:157 +#: part/admin.py:41 part/admin.py:405 part/models.py:3945 part/stocktake.py:220 +#: stock/admin.py:156 msgid "Part Name" msgstr "" -#: part/admin.py:45 part/stocktake.py:220 +#: part/admin.py:45 part/stocktake.py:221 msgid "Part Description" msgstr "" -#: part/admin.py:48 part/models.py:904 part/templates/part/part_base.html:269 -#: report/templates/report/inventree_slr_report.html:103 -#: templates/js/translated/part.js:1226 templates/js/translated/part.js:2341 -#: templates/js/translated/stock.js:2035 +#: part/admin.py:48 part/models.py:940 part/templates/part/part_base.html:269 +#: report/templates/report/inventree_stock_location_report.html:103 +#: templates/js/translated/part.js:1227 templates/js/translated/part.js:2341 +#: templates/js/translated/stock.js:2036 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:913 part/templates/part/part_base.html:277 -#: report/models.py:195 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:949 part/templates/part/part_base.html:277 +#: report/models.py:162 templates/js/translated/part.js:1232 #: templates/js/translated/part.js:2347 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:317 part/models.py:886 +#: part/admin.py:53 part/admin.py:319 part/models.py:922 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5917,15 +5823,15 @@ msgstr "" msgid "Part Image" msgstr "" -#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 +#: part/admin.py:63 part/admin.py:302 part/stocktake.py:222 msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 +#: part/admin.py:67 part/admin.py:304 part/stocktake.py:223 msgid "Category Name" msgstr "" -#: part/admin.py:71 part/admin.py:314 +#: part/admin.py:71 part/admin.py:316 msgid "Default Location ID" msgstr "" @@ -5933,11 +5839,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:872 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:908 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1000 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1036 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5945,36 +5851,36 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:231 -#: templates/js/translated/part.js:714 templates/js/translated/part.js:2152 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:235 +#: templates/js/translated/part.js:715 templates/js/translated/part.js:2153 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3080 part/models.py:3094 -#: templates/js/translated/part.js:969 +#: part/admin.py:155 part/models.py:3088 part/models.py:3102 +#: templates/js/translated/part.js:970 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3087 part/models.py:3101 -#: templates/js/translated/part.js:979 +#: part/admin.py:158 part/models.py:3095 part/models.py:3109 +#: templates/js/translated/part.js:980 msgid "Maximum Cost" msgstr "" -#: part/admin.py:306 part/admin.py:393 stock/admin.py:58 stock/admin.py:211 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 msgid "Parent ID" msgstr "" -#: part/admin.py:310 part/admin.py:400 stock/admin.py:62 +#: part/admin.py:312 part/admin.py:394 stock/admin.py:61 msgid "Parent Name" msgstr "" -#: part/admin.py:318 part/templates/part/category.html:88 +#: part/admin.py:320 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:323 part/models.py:391 part/serializers.py:117 -#: part/serializers.py:272 part/serializers.py:391 +#: part/admin.py:325 part/models.py:396 part/serializers.py:116 +#: part/serializers.py:259 part/serializers.py:378 #: 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/templates/part/category_sidebar.html:9 @@ -5985,125 +5891,129 @@ msgstr "" msgid "Parts" msgstr "" -#: part/admin.py:384 +#: part/admin.py:378 msgid "BOM Level" msgstr "" -#: part/admin.py:387 +#: part/admin.py:381 msgid "BOM Item ID" msgstr "" -#: part/admin.py:397 +#: part/admin.py:391 msgid "Parent IPN" msgstr "" -#: part/admin.py:408 part/models.py:3923 +#: part/admin.py:402 part/models.py:3946 msgid "Part IPN" msgstr "" -#: part/admin.py:421 part/serializers.py:1261 +#: part/admin.py:415 part/serializers.py:1266 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:426 part/serializers.py:1276 +#: part/admin.py:420 part/serializers.py:1281 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:119 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:121 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:138 stock/api.py:284 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:138 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:156 stock/api.py:302 +#: part/api.py:141 stock/api.py:330 msgid "Cascade" msgstr "" -#: part/api.py:158 +#: part/api.py:143 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:178 +#: part/api.py:163 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:180 +#: part/api.py:165 msgid "Filter by parent category" msgstr "" -#: part/api.py:213 +#: part/api.py:198 msgid "Exclude Tree" msgstr "" -#: part/api.py:215 +#: part/api.py:200 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:461 +#: part/api.py:433 msgid "Has Results" msgstr "" -#: part/api.py:628 +#: part/api.py:600 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:646 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:662 +#: part/api.py:634 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:746 +#: part/api.py:718 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:893 +#: part/api.py:865 msgid "Valid" msgstr "" -#: part/api.py:894 +#: part/api.py:866 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:900 +#: part/api.py:872 msgid "This option must be selected" msgstr "" -#: part/api.py:1561 part/models.py:896 part/models.py:3386 part/models.py:3866 -#: part/serializers.py:406 part/serializers.py:1117 -#: part/templates/part/part_base.html:260 stock/api.py:745 +#: part/api.py:1089 +msgid "BOM Valid" +msgstr "" + +#: part/api.py:1492 part/models.py:932 part/models.py:3374 part/models.py:3889 +#: part/serializers.py:393 part/serializers.py:1122 +#: part/templates/part/part_base.html:260 stock/api.py:775 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2377 msgid "Category" msgstr "" -#: part/api.py:1849 +#: part/api.py:1780 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:101 part/models.py:939 +#: part/bom.py:170 part/models.py:104 part/models.py:975 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:822 +#: part/bom.py:171 part/serializers.py:825 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6112,1040 +6022,1058 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:82 part/models.py:3867 part/templates/part/category.html:16 +#: part/models.py:85 part/models.py:3890 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:83 part/templates/part/category.html:136 +#: part/models.py:86 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:102 +#: part/models.py:105 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:107 stock/models.py:165 templates/js/translated/part.js:2810 +#: part/models.py:110 stock/models.py:174 templates/js/translated/part.js:2810 #: templates/js/translated/stock.js:2772 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:109 +#: part/models.py:112 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:118 +#: part/models.py:121 msgid "Default keywords" msgstr "" -#: part/models.py:119 +#: part/models.py:122 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:125 stock/models.py:89 stock/models.py:148 +#: part/models.py:128 stock/models.py:86 stock/models.py:157 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:126 stock/models.py:149 +#: part/models.py:129 stock/models.py:158 msgid "Icon (optional)" msgstr "" -#: part/models.py:148 +#: part/models.py:151 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:484 +#: part/models.py:485 +msgid "Cannot delete this part as it is still active" +msgstr "" + +#: part/models.py:490 +msgid "Cannot delete this part as it is used in an assembly" +msgstr "" + +#: part/models.py:528 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:532 part/models.py:539 +#: part/models.py:576 part/models.py:583 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:551 +#: part/models.py:595 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:616 +#: part/models.py:658 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:696 +#: part/models.py:736 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:801 +#: part/models.py:837 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 +#: part/models.py:847 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:826 +#: part/models.py:862 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:855 part/models.py:3922 +#: part/models.py:891 part/models.py:3945 msgid "Part name" msgstr "" -#: part/models.py:860 +#: part/models.py:896 msgid "Is Template" msgstr "" -#: part/models.py:861 +#: part/models.py:897 msgid "Is this part a template part?" msgstr "" -#: part/models.py:871 +#: part/models.py:907 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:879 +#: part/models.py:915 msgid "Part description (optional)" msgstr "" -#: part/models.py:887 +#: part/models.py:923 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:897 +#: part/models.py:933 msgid "Part category" msgstr "" -#: part/models.py:905 +#: part/models.py:941 msgid "Internal Part Number" msgstr "" -#: part/models.py:912 +#: part/models.py:948 msgid "Part revision or version number" msgstr "" -#: part/models.py:937 +#: part/models.py:973 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:983 part/templates/part/part_base.html:376 +#: part/models.py:1019 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:984 +#: part/models.py:1020 msgid "Default supplier part" msgstr "" -#: part/models.py:991 +#: part/models.py:1027 msgid "Default Expiry" msgstr "" -#: part/models.py:992 +#: part/models.py:1028 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1001 +#: part/models.py:1037 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1010 +#: part/models.py:1046 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1017 +#: part/models.py:1053 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1023 +#: part/models.py:1059 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1029 +#: part/models.py:1065 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1035 +#: part/models.py:1071 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1041 +#: part/models.py:1077 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1045 +#: part/models.py:1081 msgid "Is this part active?" msgstr "" -#: part/models.py:1051 +#: part/models.py:1087 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1057 +#: part/models.py:1093 msgid "BOM checksum" msgstr "" -#: part/models.py:1058 +#: part/models.py:1094 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1066 +#: part/models.py:1102 msgid "BOM checked by" msgstr "" -#: part/models.py:1071 +#: part/models.py:1107 msgid "BOM checked date" msgstr "" -#: part/models.py:1087 +#: part/models.py:1123 msgid "Creation User" msgstr "" -#: part/models.py:1097 +#: part/models.py:1133 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1102 part/templates/part/part_base.html:339 +#: part/models.py:1138 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2471 msgid "Last Stocktake" msgstr "" -#: part/models.py:1975 +#: part/models.py:2011 msgid "Sell multiple" msgstr "" -#: part/models.py:2994 +#: part/models.py:3002 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3010 +#: part/models.py:3018 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3011 +#: part/models.py:3019 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3017 +#: part/models.py:3025 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3026 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3024 +#: part/models.py:3032 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3025 +#: part/models.py:3033 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3031 +#: part/models.py:3039 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3032 +#: part/models.py:3040 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3038 +#: part/models.py:3046 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3039 +#: part/models.py:3047 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3045 +#: part/models.py:3053 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3046 +#: part/models.py:3054 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3052 +#: part/models.py:3060 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3053 +#: part/models.py:3061 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3059 +#: part/models.py:3067 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3060 +#: part/models.py:3068 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3066 +#: part/models.py:3074 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3067 +#: part/models.py:3075 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3073 +#: part/models.py:3081 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3074 +#: part/models.py:3082 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3081 +#: part/models.py:3089 msgid "Override minimum cost" msgstr "" -#: part/models.py:3088 +#: part/models.py:3096 msgid "Override maximum cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3103 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3110 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3108 +#: part/models.py:3116 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3109 +#: part/models.py:3117 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3115 +#: part/models.py:3123 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3116 +#: part/models.py:3124 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3122 +#: part/models.py:3130 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3123 +#: part/models.py:3131 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3129 +#: part/models.py:3137 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3130 +#: part/models.py:3138 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3149 +#: part/models.py:3157 msgid "Part for stocktake" msgstr "" -#: part/models.py:3154 +#: part/models.py:3162 msgid "Item Count" msgstr "" -#: part/models.py:3155 +#: part/models.py:3163 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3163 +#: part/models.py:3171 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3167 part/models.py:3250 +#: part/models.py:3175 part/models.py:3258 #: part/templates/part/part_scheduling.html:13 -#: report/templates/report/inventree_test_report_base.html:106 +#: 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:1085 templates/js/translated/pricing.js:826 +#: templates/js/translated/part.js:1086 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1732 +#: templates/js/translated/purchase_order.js:1731 #: templates/js/translated/stock.js:2821 msgid "Date" msgstr "" -#: part/models.py:3168 +#: part/models.py:3176 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3176 +#: part/models.py:3184 msgid "Additional notes" msgstr "" -#: part/models.py:3186 +#: part/models.py:3194 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3192 +#: part/models.py:3200 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3193 +#: part/models.py:3201 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3199 +#: part/models.py:3207 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3200 +#: part/models.py:3208 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3256 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3264 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3257 +#: part/models.py:3265 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3262 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3270 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3263 +#: part/models.py:3271 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3273 +#: part/models.py:3281 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3435 +#: part/models.py:3423 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3446 +#: part/models.py:3444 part/models.py:3608 +msgid "Choices must be unique" +msgstr "" + +#: part/models.py:3455 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3457 +#: part/models.py:3466 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3474 templates/js/translated/part.js:2879 +#: part/models.py:3483 templates/js/translated/part.js:2880 msgid "Test Name" msgstr "" -#: part/models.py:3475 +#: part/models.py:3484 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3481 +#: part/models.py:3490 msgid "Test Key" msgstr "" -#: part/models.py:3482 +#: part/models.py:3491 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3489 +#: part/models.py:3498 msgid "Test Description" msgstr "" -#: part/models.py:3490 +#: part/models.py:3499 msgid "Enter description for this test" msgstr "" -#: part/models.py:3494 +#: part/models.py:3503 report/models.py:209 +#: templates/js/translated/part.js:2901 +#: templates/js/translated/table_filters.js:481 +msgid "Enabled" +msgstr "" + +#: part/models.py:3503 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3499 templates/js/translated/part.js:2908 +#: part/models.py:3508 templates/js/translated/part.js:2909 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3500 +#: part/models.py:3509 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3505 templates/js/translated/part.js:2916 +#: part/models.py:3514 templates/js/translated/part.js:2917 msgid "Requires Value" msgstr "" -#: part/models.py:3506 +#: part/models.py:3515 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3511 templates/js/translated/part.js:2923 +#: part/models.py:3520 templates/js/translated/part.js:2924 msgid "Requires Attachment" msgstr "" -#: part/models.py:3513 +#: part/models.py:3522 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3560 +#: part/models.py:3528 part/models.py:3667 templates/js/translated/part.js:1637 +msgid "Choices" +msgstr "" + +#: part/models.py:3529 +msgid "Valid choices for this test (comma-separated)" +msgstr "" + +#: part/models.py:3583 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3565 +#: part/models.py:3588 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3585 -msgid "Choices must be unique" -msgstr "" - -#: part/models.py:3602 +#: part/models.py:3625 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3617 +#: part/models.py:3640 msgid "Parameter Name" msgstr "" -#: part/models.py:3624 +#: part/models.py:3647 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3632 +#: part/models.py:3655 msgid "Parameter description" msgstr "" -#: part/models.py:3638 templates/js/translated/part.js:1627 +#: part/models.py:3661 templates/js/translated/part.js:1628 #: templates/js/translated/table_filters.js:825 msgid "Checkbox" msgstr "" -#: part/models.py:3639 +#: part/models.py:3662 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3644 templates/js/translated/part.js:1636 -msgid "Choices" -msgstr "" - -#: part/models.py:3645 +#: part/models.py:3668 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3722 +#: part/models.py:3745 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3765 +#: part/models.py:3788 msgid "Parent Part" msgstr "" -#: part/models.py:3773 part/models.py:3874 part/models.py:3875 +#: part/models.py:3796 part/models.py:3897 part/models.py:3898 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3778 +#: part/models.py:3801 msgid "Data" msgstr "" -#: part/models.py:3779 +#: part/models.py:3802 msgid "Parameter Value" msgstr "" -#: part/models.py:3881 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3904 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3882 +#: part/models.py:3905 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3920 +#: part/models.py:3943 msgid "Part ID or part name" msgstr "" -#: part/models.py:3921 +#: part/models.py:3944 msgid "Unique part ID value" msgstr "" -#: part/models.py:3923 +#: part/models.py:3946 msgid "Part IPN value" msgstr "" -#: part/models.py:3924 +#: part/models.py:3947 msgid "Level" msgstr "" -#: part/models.py:3924 +#: part/models.py:3947 msgid "BOM level" msgstr "" -#: part/models.py:4014 +#: part/models.py:4037 msgid "Select parent part" msgstr "" -#: part/models.py:4024 +#: part/models.py:4047 msgid "Sub part" msgstr "" -#: part/models.py:4025 +#: part/models.py:4048 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4036 +#: part/models.py:4059 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4042 +#: part/models.py:4065 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4048 +#: part/models.py:4071 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4055 part/templates/part/upload_bom.html:55 +#: part/models.py:4078 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4056 +#: part/models.py:4079 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4063 +#: part/models.py:4086 msgid "BOM item reference" msgstr "" -#: part/models.py:4071 +#: part/models.py:4094 msgid "BOM item notes" msgstr "" -#: part/models.py:4077 +#: part/models.py:4100 msgid "Checksum" msgstr "" -#: part/models.py:4078 +#: part/models.py:4101 msgid "BOM line checksum" msgstr "" -#: part/models.py:4083 templates/js/translated/table_filters.js:174 +#: part/models.py:4106 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4084 +#: part/models.py:4107 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4089 part/templates/part/upload_bom.html:57 +#: part/models.py:4112 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:4090 +#: part/models.py:4113 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4095 part/templates/part/upload_bom.html:56 +#: part/models.py:4118 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:4096 +#: part/models.py:4119 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4181 stock/models.py:647 +#: part/models.py:4204 stock/models.py:662 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4191 part/models.py:4193 +#: part/models.py:4214 part/models.py:4216 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4333 +#: part/models.py:4354 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4354 +#: part/models.py:4375 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4367 +#: part/models.py:4388 msgid "Parent BOM item" msgstr "" -#: part/models.py:4375 +#: part/models.py:4396 msgid "Substitute part" msgstr "" -#: part/models.py:4391 +#: part/models.py:4412 msgid "Part 1" msgstr "" -#: part/models.py:4399 +#: part/models.py:4420 msgid "Part 2" msgstr "" -#: part/models.py:4400 +#: part/models.py:4421 msgid "Select Related Part" msgstr "" -#: part/models.py:4419 +#: part/models.py:4440 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4424 +#: part/models.py:4445 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:119 part/serializers.py:141 +#: part/serializers.py:118 part/serializers.py:140 #: part/templates/part/category.html:122 part/templates/part/category.html:207 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:185 +#: part/serializers.py:172 msgid "Results" msgstr "" -#: part/serializers.py:186 +#: part/serializers.py:173 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:210 part/serializers.py:228 stock/serializers.py:406 +#: part/serializers.py:197 part/serializers.py:215 stock/serializers.py:562 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:273 +#: part/serializers.py:260 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:397 +#: part/serializers.py:384 msgid "No parts selected" msgstr "" -#: part/serializers.py:407 +#: part/serializers.py:394 msgid "Select category" msgstr "" -#: part/serializers.py:437 +#: part/serializers.py:429 msgid "Original Part" msgstr "" -#: part/serializers.py:438 +#: part/serializers.py:430 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:443 +#: part/serializers.py:435 msgid "Copy Image" msgstr "" -#: part/serializers.py:444 +#: part/serializers.py:436 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:450 part/templates/part/detail.html:277 +#: part/serializers.py:442 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:451 +#: part/serializers.py:443 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:449 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:450 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:456 msgid "Copy Notes" msgstr "" -#: part/serializers.py:465 +#: part/serializers.py:457 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:475 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:477 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:484 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:488 +#: part/serializers.py:485 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:500 +#: part/serializers.py:502 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:516 +#: part/serializers.py:518 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:526 +#: part/serializers.py:528 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:533 +#: part/serializers.py:535 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:542 +#: part/serializers.py:544 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:553 +#: part/serializers.py:555 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:560 +#: part/serializers.py:562 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:823 +#: part/serializers.py:826 msgid "External Stock" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:828 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:828 +#: part/serializers.py:831 msgid "Variant Stock" msgstr "" -#: part/serializers.py:856 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:471 +#: part/serializers.py:861 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:472 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:862 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:863 templates/js/translated/part.js:102 +#: part/serializers.py:868 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:864 +#: part/serializers.py:869 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:870 +#: part/serializers.py:875 msgid "Supplier Information" msgstr "" -#: part/serializers.py:871 +#: part/serializers.py:876 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:884 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:885 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:885 +#: part/serializers.py:890 msgid "Existing Image" msgstr "" -#: part/serializers.py:886 +#: part/serializers.py:891 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:908 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1109 +#: part/serializers.py:1114 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1119 +#: part/serializers.py:1124 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1129 +#: part/serializers.py:1134 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1135 +#: part/serializers.py:1140 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1141 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1141 +#: part/serializers.py:1146 msgid "Generate Report" msgstr "" -#: part/serializers.py:1142 +#: part/serializers.py:1147 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1147 +#: part/serializers.py:1152 msgid "Update Parts" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1153 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1156 +#: part/serializers.py:1161 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1262 +#: part/serializers.py:1267 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1269 +#: part/serializers.py:1274 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1277 +#: part/serializers.py:1282 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1284 +#: part/serializers.py:1289 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1313 +#: part/serializers.py:1318 msgid "Update" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1319 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1342 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1349 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1352 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1714 +#: part/serializers.py:1719 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1722 +#: part/serializers.py:1727 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1723 +#: part/serializers.py:1728 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1728 +#: part/serializers.py:1733 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1729 +#: part/serializers.py:1734 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1734 +#: part/serializers.py:1739 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1735 +#: part/serializers.py:1740 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1740 +#: part/serializers.py:1745 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1741 +#: part/serializers.py:1746 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1775 +#: part/serializers.py:1780 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1776 +#: part/serializers.py:1781 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1806 +#: part/serializers.py:1811 msgid "No part column specified" msgstr "" -#: part/serializers.py:1850 +#: part/serializers.py:1855 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1853 +#: part/serializers.py:1858 msgid "No matching part found" msgstr "" -#: part/serializers.py:1856 +#: part/serializers.py:1861 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1865 +#: part/serializers.py:1870 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1873 +#: part/serializers.py:1878 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1894 +#: part/serializers.py:1899 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:224 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1821 templates/js/translated/part.js:1877 -#: templates/js/translated/purchase_order.js:2085 +#: part/stocktake.py:225 templates/js/translated/part.js:1067 +#: templates/js/translated/part.js:1822 templates/js/translated/part.js:1878 +#: templates/js/translated/purchase_order.js:2084 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:226 +#: part/stocktake.py:227 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:284 +#: part/stocktake.py:285 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:285 +#: part/stocktake.py:286 msgid "A new stocktake report is available for download" msgstr "" @@ -7279,9 +7207,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:251 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2215 users/models.py:204 +#: templates/js/translated/stock.js:2216 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7379,15 +7307,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:659 +#: part/templates/part/detail.html:657 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:667 +#: part/templates/part/detail.html:665 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:752 +#: part/templates/part/detail.html:750 msgid "Add Test Result Template" msgstr "" @@ -7446,7 +7374,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 +#: stock/templates/stock/location.html:74 templates/js/translated/label.js:143 msgid "Print Label" msgstr "" @@ -7517,7 +7445,7 @@ msgid "Part is virtual (not a physical part)" msgstr "" #: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:682 +#: part/templates/part/part_base.html:681 msgid "Show Part Details" msgstr "" @@ -7540,7 +7468,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:322 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1264 templates/js/translated/part.js:2444 +#: templates/js/translated/part.js:1265 templates/js/translated/part.js:2444 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -7563,19 +7491,19 @@ msgstr "" msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:512 +#: part/templates/part/part_base.html:511 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:529 +#: part/templates/part/part_base.html:528 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:580 +#: part/templates/part/part_base.html:579 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:676 +#: part/templates/part/part_base.html:675 msgid "Hide Part Details" msgstr "" @@ -7633,9 +7561,9 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1242 templates/js/translated/part.js:2145 +#: templates/js/translated/part.js:1243 templates/js/translated/part.js:2146 #: templates/js/translated/part.js:2392 templates/js/translated/stock.js:1059 -#: templates/js/translated/stock.js:2069 templates/navbar.html:31 +#: templates/js/translated/stock.js:2070 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -7677,11 +7605,11 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:247 +#: part/templates/part/prices.html:28 stock/admin.py:251 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2245 +#: templates/js/translated/stock.js:2246 msgid "Last Updated" msgstr "" @@ -7753,9 +7681,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:221 -#: templates/js/translated/part.js:704 templates/js/translated/part.js:2140 -#: templates/js/translated/part.js:2142 +#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:2141 +#: templates/js/translated/part.js:2143 msgid "No Stock" msgstr "" @@ -7833,7 +7761,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:168 +#: plugin/api.py:170 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -7899,8 +7827,8 @@ msgstr "" msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2590 -#: templates/js/translated/sales_order.js:1917 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2589 +#: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" @@ -7994,20 +7922,20 @@ msgstr "" msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:39 +#: plugin/base/label/label.py:39 templates/js/translated/label.js:155 msgid "Label printing failed" msgstr "" -#: plugin/base/label/mixins.py:63 +#: plugin/base/label/mixins.py:56 msgid "Error rendering label to PDF" msgstr "" -#: plugin/base/label/mixins.py:76 +#: plugin/base/label/mixins.py:70 msgid "Error rendering label to HTML" msgstr "" -#: plugin/base/label/mixins.py:111 -msgid "Error rendering label to PNG" +#: plugin/base/label/mixins.py:151 +msgid "No items provided to print" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:25 @@ -8021,7 +7949,7 @@ msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 -#: plugin/builtin/labels/inventree_label.py:23 +#: plugin/builtin/labels/inventree_label.py:22 #: plugin/builtin/labels/inventree_machine.py:64 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -8075,19 +8003,19 @@ msgstr "" msgid "Default currency exchange integration" msgstr "" -#: plugin/builtin/labels/inventree_label.py:20 +#: plugin/builtin/labels/inventree_label.py:19 msgid "InvenTree PDF label printer" msgstr "" -#: plugin/builtin/labels/inventree_label.py:21 +#: plugin/builtin/labels/inventree_label.py:20 msgid "Provides native support for printing PDF labels" msgstr "" -#: plugin/builtin/labels/inventree_label.py:29 +#: plugin/builtin/labels/inventree_label.py:28 msgid "Debug mode" msgstr "" -#: plugin/builtin/labels/inventree_label.py:30 +#: plugin/builtin/labels/inventree_label.py:29 msgid "Enable debug mode - returns raw HTML instead of PDF" msgstr "" @@ -8099,11 +8027,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:150 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:167 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8127,7 +8055,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:209 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:308 msgid "Landscape" msgstr "" @@ -8143,11 +8071,11 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:94 +#: plugin/builtin/labels/label_sheet.py:99 msgid "Label is too large for page size" msgstr "" -#: plugin/builtin/labels/label_sheet.py:128 +#: plugin/builtin/labels/label_sheet.py:133 msgid "No labels were generated" msgstr "" @@ -8240,61 +8168,62 @@ msgstr "" msgid "Uninstalled plugin successfully" msgstr "" -#: plugin/models.py:30 +#: plugin/models.py:36 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:31 +#: plugin/models.py:37 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:100 +#: plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: plugin/models.py:34 +#: plugin/models.py:44 msgid "Key of plugin" msgstr "" -#: plugin/models.py:42 +#: plugin/models.py:52 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:90 msgid "Package Name" msgstr "" -#: plugin/models.py:51 +#: plugin/models.py:61 msgid "Name of the installed package, if the plugin was installed via PIP" msgstr "" -#: plugin/models.py:56 +#: plugin/models.py:66 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:147 templates/js/translated/table_filters.js:370 +#: plugin/models.py:157 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:504 msgid "Installed" msgstr "" -#: plugin/models.py:156 +#: plugin/models.py:166 msgid "Sample plugin" msgstr "" -#: plugin/models.py:164 +#: plugin/models.py:174 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:172 +#: plugin/models.py:182 msgid "Package Plugin" msgstr "" -#: plugin/models.py:196 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:220 report/models.py:475 +#: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:243 +#: plugin/models.py:267 msgid "Method" msgstr "" @@ -8302,17 +8231,17 @@ msgstr "" msgid "No author found" msgstr "" -#: plugin/registry.py:588 +#: plugin/registry.py:598 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:591 +#: plugin/registry.py:601 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:593 +#: plugin/registry.py:603 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -8395,279 +8324,359 @@ msgstr "" msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:156 +#: plugin/serializers.py:161 msgid "Full reload" msgstr "" -#: plugin/serializers.py:157 +#: plugin/serializers.py:162 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:163 +#: plugin/serializers.py:168 msgid "Force reload" msgstr "" -#: plugin/serializers.py:165 +#: plugin/serializers.py:170 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:177 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:178 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:195 +#: plugin/serializers.py:205 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:196 +#: plugin/serializers.py:206 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:219 +#: plugin/serializers.py:226 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:220 +#: plugin/serializers.py:227 msgid "Delete the plugin configuration from the database" msgstr "" -#: report/api.py:158 +#: report/api.py:88 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:197 report/api.py:234 +#: report/api.py:103 report/models.py:439 report/serializers.py:98 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1747 +#: templates/js/translated/return_order.js:353 +#: templates/js/translated/sales_order.js:887 +#: templates/js/translated/sales_order.js:1047 +msgid "Items" +msgstr "" + +#: report/api.py:180 +msgid "Plugin not found" +msgstr "" + +#: report/api.py:182 +msgid "Plugin is not active" +msgstr "" + +#: report/api.py:184 +msgid "Plugin does not support label printing" +msgstr "" + +#: report/api.py:233 +msgid "Invalid label dimensions" +msgstr "" + +#: report/api.py:248 report/api.py:329 +msgid "No valid items provided to template" +msgstr "" + +#: report/api.py:283 +msgid "Error printing label" +msgstr "" + +#: report/api.py:375 report/api.py:411 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:319 -msgid "Test report" -msgstr "" - -#: report/helpers.py:15 +#: report/helpers.py:43 msgid "A4" msgstr "" -#: report/helpers.py:16 +#: report/helpers.py:44 msgid "A3" msgstr "" -#: report/helpers.py:17 +#: report/helpers.py:45 msgid "Legal" msgstr "" -#: report/helpers.py:18 +#: report/helpers.py:46 msgid "Letter" msgstr "" -#: report/models.py:177 +#: report/models.py:119 +msgid "Template file with this name already exists" +msgstr "" + +#: report/models.py:151 msgid "Template name" msgstr "" -#: report/models.py:183 -msgid "Report template file" +#: report/models.py:157 +msgid "Template description" msgstr "" -#: report/models.py:190 -msgid "Report template description" +#: report/models.py:163 +msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:196 -msgid "Report revision number (auto-increments)" +#: report/models.py:203 +msgid "Filename Pattern" msgstr "" #: report/models.py:204 +msgid "Pattern for generating filenames" +msgstr "" + +#: report/models.py:209 +msgid "Template is enabled" +msgstr "" + +#: report/models.py:215 +msgid "Target model type for template" +msgstr "" + +#: report/models.py:235 +msgid "Filters" +msgstr "" + +#: report/models.py:236 +msgid "Template query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:295 report/models.py:362 +msgid "Template file" +msgstr "" + +#: report/models.py:303 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:210 +#: report/models.py:309 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:318 -msgid "Pattern for generating report filenames" +#: report/models.py:368 +msgid "Width [mm]" msgstr "" -#: report/models.py:325 -msgid "Report template is enabled" +#: report/models.py:369 +msgid "Label width, specified in mm" msgstr "" -#: report/models.py:347 -msgid "StockItem query filters (comma-separated list of key=value pairs)" +#: report/models.py:375 +msgid "Height [mm]" msgstr "" -#: report/models.py:354 -msgid "Include Installed Tests" +#: report/models.py:376 +msgid "Label height, specified in mm" msgstr "" -#: report/models.py:356 -msgid "Include test results for stock items installed inside assembled item" +#: report/models.py:439 +msgid "Number of items to process" msgstr "" -#: report/models.py:424 -msgid "Build Filters" +#: report/models.py:445 +msgid "Report generation is complete" msgstr "" -#: report/models.py:425 -msgid "Build query filters (comma-separated list of key=value pairs" +#: report/models.py:449 templates/js/translated/build.js:2177 +msgid "Progress" msgstr "" -#: report/models.py:464 -msgid "Part Filters" +#: report/models.py:449 +msgid "Report generation progress" msgstr "" -#: report/models.py:465 -msgid "Part query filters (comma-separated list of key=value pairs" +#: report/models.py:457 +msgid "Report Template" msgstr "" -#: report/models.py:497 -msgid "Purchase order query filters" +#: report/models.py:464 report/models.py:487 +msgid "Output File" msgstr "" -#: report/models.py:533 -msgid "Sales order query filters" +#: report/models.py:465 report/models.py:488 +msgid "Generated output file" msgstr "" -#: report/models.py:569 -msgid "Return order query filters" +#: report/models.py:476 +msgid "Label output plugin" msgstr "" -#: report/models.py:641 -msgid "Snippet file with this name already exists" +#: report/models.py:480 +msgid "Label Template" msgstr "" -#: report/models.py:648 +#: report/models.py:503 msgid "Snippet" msgstr "" -#: report/models.py:649 +#: report/models.py:504 msgid "Report snippet file" msgstr "" -#: report/models.py:656 +#: report/models.py:511 msgid "Snippet file description" msgstr "" -#: report/models.py:714 -msgid "Asset file with this name already exists" -msgstr "" - -#: report/models.py:722 +#: report/models.py:529 msgid "Asset" msgstr "" -#: report/models.py:723 +#: report/models.py:530 msgid "Report asset file" msgstr "" -#: report/models.py:730 +#: report/models.py:537 msgid "Asset file description" msgstr "" -#: report/models.py:752 -msgid "stock location query filters (comma-separated list of key=value pairs)" +#: report/serializers.py:91 +msgid "Select report template" +msgstr "" + +#: report/serializers.py:99 report/serializers.py:149 +msgid "List of item primary keys to include in the report" +msgstr "" + +#: report/serializers.py:132 +msgid "Select label template" +msgstr "" + +#: report/serializers.py:140 +msgid "Printing Plugin" +msgstr "" + +#: report/serializers.py:141 +msgid "Select plugin to use for label printing" +msgstr "" + +#: report/templates/label/part_label.html:31 +#: report/templates/label/stockitem_qr.html:21 +#: report/templates/label/stocklocation_qr.html:20 +#: templates/allauth_2fa/setup.html:18 +msgid "QR Code" +msgstr "" + +#: report/templates/label/part_label_code128.html:31 +#: report/templates/label/stocklocation_qr_and_text.html:31 +#: templates/qr_code.html:7 +msgid "QR code" msgstr "" #: report/templates/report/inventree_bill_of_materials_report.html:133 msgid "Materials needed" msgstr "" -#: report/templates/report/inventree_build_order_base.html:146 +#: report/templates/report/inventree_build_order_report.html:146 msgid "Required For" msgstr "" -#: report/templates/report/inventree_po_report_base.html:15 +#: report/templates/report/inventree_purchase_order_report.html:15 msgid "Supplier was deleted" msgstr "" -#: report/templates/report/inventree_po_report_base.html:30 -#: report/templates/report/inventree_so_report_base.html:30 +#: 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/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2116 -#: templates/js/translated/sales_order.js:1837 +#: templates/js/translated/purchase_order.js:2115 +#: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" -#: report/templates/report/inventree_po_report_base.html:55 -#: report/templates/report/inventree_return_order_report_base.html:48 -#: report/templates/report/inventree_so_report_base.html:55 +#: report/templates/report/inventree_purchase_order_report.html:55 +#: report/templates/report/inventree_return_order_report.html:48 +#: report/templates/report/inventree_sales_order_report.html:55 msgid "Extra Line Items" msgstr "" -#: report/templates/report/inventree_po_report_base.html:72 -#: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:2018 -#: templates/js/translated/sales_order.js:1806 +#: report/templates/report/inventree_purchase_order_report.html:72 +#: report/templates/report/inventree_sales_order_report.html:72 +#: templates/js/translated/purchase_order.js:2017 +#: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" -#: report/templates/report/inventree_return_order_report_base.html:25 -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:809 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:519 templates/js/translated/build.js:1364 -#: templates/js/translated/build.js:2353 -#: templates/js/translated/model_renderers.js:224 -#: templates/js/translated/return_order.js:540 -#: templates/js/translated/return_order.js:724 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:824 +#: stock/serializers.py:149 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:519 templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:2355 +#: 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:1611 -#: templates/js/translated/sales_order.js:1696 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 #: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" -#: report/templates/report/inventree_slr_report.html:97 +#: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" -#: report/templates/report/inventree_test_report_base.html:21 +#: report/templates/report/inventree_test_report.html:21 msgid "Stock Item Test Report" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 +#: report/templates/report/inventree_test_report.html:97 msgid "Test Results" msgstr "" -#: report/templates/report/inventree_test_report_base.html:102 -#: templates/js/translated/stock.js:1492 +#: report/templates/report/inventree_test_report.html:102 +#: templates/js/translated/stock.js:1495 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2430 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2412 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:130 +#: report/templates/report/inventree_test_report.html:130 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:132 +#: report/templates/report/inventree_test_report.html:132 msgid "Fail" msgstr "" -#: report/templates/report/inventree_test_report_base.html:139 +#: report/templates/report/inventree_test_report.html:139 msgid "No result (required)" msgstr "" -#: report/templates/report/inventree_test_report_base.html:141 +#: report/templates/report/inventree_test_report.html:141 msgid "No result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:154 +#: report/templates/report/inventree_test_report.html:154 #: stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:162 templates/js/translated/stock.js:700 -#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3110 +#: report/templates/report/inventree_test_report.html:168 stock/admin.py:161 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3110 msgid "Serial" msgstr "" @@ -8687,617 +8696,793 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:52 stock/admin.py:172 +#: stock/admin.py:51 stock/admin.py:171 msgid "Location ID" msgstr "" -#: stock/admin.py:54 stock/admin.py:176 +#: stock/admin.py:53 stock/admin.py:175 msgid "Location Name" msgstr "" -#: stock/admin.py:64 stock/templates/stock/location.html:131 +#: stock/admin.py:63 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:149 +#: stock/admin.py:148 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:168 +#: stock/admin.py:167 msgid "Status Code" msgstr "" -#: stock/admin.py:180 +#: stock/admin.py:179 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:185 +#: stock/admin.py:184 +msgid "Supplier Part SKU" +msgstr "" + +#: stock/admin.py:189 msgid "Supplier ID" msgstr "" -#: stock/admin.py:191 +#: stock/admin.py:195 msgid "Supplier Name" msgstr "" -#: stock/admin.py:196 +#: stock/admin.py:200 msgid "Customer ID" msgstr "" -#: stock/admin.py:201 stock/models.py:789 +#: stock/admin.py:205 stock/models.py:804 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:206 +#: stock/admin.py:210 msgid "Build ID" msgstr "" -#: stock/admin.py:216 +#: stock/admin.py:220 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:221 +#: stock/admin.py:225 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:236 +#: stock/admin.py:240 msgid "Review Needed" msgstr "" -#: stock/admin.py:241 +#: stock/admin.py:245 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:256 stock/models.py:883 +#: stock/admin.py:260 stock/models.py:898 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2229 users/models.py:124 +#: templates/js/translated/stock.js:2230 users/models.py:124 msgid "Expiry Date" msgstr "" -#: stock/api.py:284 +#: stock/api.py:312 msgid "Filter by location depth" msgstr "" -#: stock/api.py:304 +#: stock/api.py:332 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:325 +#: stock/api.py:353 msgid "Parent Location" msgstr "" -#: stock/api.py:326 +#: stock/api.py:354 msgid "Filter by parent location" msgstr "" -#: stock/api.py:579 templates/js/translated/table_filters.js:427 +#: stock/api.py:609 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:767 +#: stock/api.py:797 msgid "Part Tree" msgstr "" -#: stock/api.py:797 +#: stock/api.py:827 msgid "Expiry date before" msgstr "" -#: stock/api.py:801 +#: stock/api.py:831 msgid "Expiry date after" msgstr "" -#: stock/api.py:804 stock/templates/stock/item_base.html:439 +#: stock/api.py:834 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:891 +#: stock/api.py:921 msgid "Quantity is required" msgstr "" -#: stock/api.py:897 +#: stock/api.py:927 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:928 +#: stock/api.py:958 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:938 +#: stock/api.py:968 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:969 +#: stock/api.py:999 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:63 +#: stock/models.py:60 msgid "Stock Location type" msgstr "" -#: stock/models.py:64 +#: stock/models.py:61 msgid "Stock Location types" msgstr "" -#: stock/models.py:90 +#: stock/models.py:87 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:771 +#: stock/models.py:124 stock/models.py:786 #: 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:179 +#: stock/models.py:125 stock/templates/stock/location.html:186 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:158 stock/models.py:932 +#: stock/models.py:167 stock/models.py:947 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:159 stock/models.py:933 +#: stock/models.py:168 stock/models.py:948 msgid "Select Owner" msgstr "" -#: stock/models.py:167 +#: stock/models.py:176 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:174 templates/js/translated/stock.js:2781 +#: stock/models.py:183 templates/js/translated/stock.js:2781 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:175 +#: stock/models.py:184 msgid "This is an external stock location" msgstr "" -#: stock/models.py:181 templates/js/translated/stock.js:2790 +#: stock/models.py:190 templates/js/translated/stock.js:2790 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:185 +#: stock/models.py:194 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:254 +#: stock/models.py:261 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:626 +#: stock/models.py:641 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:653 stock/serializers.py:290 +#: stock/models.py:668 stock/serializers.py:446 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:670 +#: stock/models.py:685 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:680 stock/models.py:693 +#: stock/models.py:695 stock/models.py:708 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:683 +#: stock/models.py:698 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:707 +#: stock/models.py:722 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:712 +#: stock/models.py:727 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:725 +#: stock/models.py:740 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:741 +#: stock/models.py:756 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:753 +#: stock/models.py:768 msgid "Base part" msgstr "" -#: stock/models.py:763 +#: stock/models.py:778 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:775 +#: stock/models.py:790 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:783 stock/serializers.py:1351 +#: stock/models.py:798 stock/serializers.py:1467 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:794 +#: stock/models.py:809 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:813 +#: stock/models.py:828 msgid "Serial number for this item" msgstr "" -#: stock/models.py:827 stock/serializers.py:1334 +#: stock/models.py:842 stock/serializers.py:1450 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:832 +#: stock/models.py:847 msgid "Stock Quantity" msgstr "" -#: stock/models.py:842 +#: stock/models.py:857 msgid "Source Build" msgstr "" -#: stock/models.py:845 +#: stock/models.py:860 msgid "Build for this stock item" msgstr "" -#: stock/models.py:852 stock/templates/stock/item_base.html:363 +#: stock/models.py:867 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:855 +#: stock/models.py:870 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:864 +#: stock/models.py:879 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:868 +#: stock/models.py:883 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:874 +#: stock/models.py:889 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:885 +#: stock/models.py:900 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:903 +#: stock/models.py:918 msgid "Delete on deplete" msgstr "" -#: stock/models.py:904 +#: stock/models.py:919 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:924 +#: stock/models.py:939 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:955 +#: stock/models.py:970 msgid "Converted to part" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1486 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1492 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1479 +#: stock/models.py:1500 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1485 +#: stock/models.py:1506 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1511 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1498 stock/serializers.py:529 +#: stock/models.py:1519 stock/serializers.py:660 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1595 +#: stock/models.py:1616 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1613 +#: stock/models.py:1634 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1617 +#: stock/models.py:1638 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1620 +#: stock/models.py:1641 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1623 +#: stock/models.py:1644 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1647 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1629 +#: stock/models.py:1650 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1636 stock/serializers.py:1240 +#: stock/models.py:1657 stock/serializers.py:1356 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1640 +#: stock/models.py:1661 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1648 +#: stock/models.py:1669 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1674 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1870 +#: stock/models.py:1901 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2333 +#: stock/models.py:2310 msgid "Entry notes" msgstr "" -#: stock/models.py:2398 +#: stock/models.py:2378 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2403 +#: stock/models.py:2383 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2388 +msgid "Invalid value for this test" +msgstr "" + +#: stock/models.py:2412 msgid "Test result" msgstr "" -#: stock/models.py:2437 +#: stock/models.py:2419 msgid "Test output value" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2427 msgid "Test result attachment" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2431 msgid "Test notes" msgstr "" -#: stock/models.py:2457 templates/js/translated/stock.js:1545 +#: stock/models.py:2439 templates/js/translated/stock.js:1548 msgid "Test station" msgstr "" -#: stock/models.py:2458 +#: stock/models.py:2440 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2464 +#: stock/models.py:2446 msgid "Started" msgstr "" -#: stock/models.py:2465 +#: stock/models.py:2447 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2471 +#: stock/models.py:2453 msgid "Finished" msgstr "" -#: stock/models.py:2472 +#: stock/models.py:2454 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:100 -msgid "Test template for this result" +#: stock/serializers.py:74 +msgid "Generated batch code" +msgstr "" + +#: stock/serializers.py:83 +msgid "Select build order" +msgstr "" + +#: stock/serializers.py:92 +msgid "Select stock item to generate batch code for" +msgstr "" + +#: stock/serializers.py:101 +msgid "Select location to generate batch code for" +msgstr "" + +#: stock/serializers.py:110 +msgid "Select part to generate batch code for" msgstr "" #: stock/serializers.py:119 +msgid "Select purchase order" +msgstr "" + +#: stock/serializers.py:126 +msgid "Enter quantity for batch code" +msgstr "" + +#: stock/serializers.py:149 +msgid "Generated serial number" +msgstr "" + +#: stock/serializers.py:158 +msgid "Select part to generate serial number for" +msgstr "" + +#: stock/serializers.py:166 +msgid "Quantity of serial numbers to generate" +msgstr "" + +#: stock/serializers.py:228 +msgid "Test template for this result" +msgstr "" + +#: stock/serializers.py:247 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:279 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:184 +#: stock/serializers.py:315 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:282 +#: stock/serializers.py:438 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:402 +#: stock/serializers.py:558 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:464 +#: stock/serializers.py:595 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:477 +#: stock/serializers.py:608 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:484 +#: stock/serializers.py:615 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:495 stock/serializers.py:1197 stock/serializers.py:1453 +#: stock/serializers.py:626 stock/serializers.py:1313 stock/serializers.py:1569 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:633 msgid "Optional note field" msgstr "" -#: stock/serializers.py:512 +#: stock/serializers.py:643 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:567 +#: stock/serializers.py:698 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:574 +#: stock/serializers.py:705 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:575 +#: stock/serializers.py:706 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:580 stock/serializers.py:660 stock/serializers.py:756 -#: stock/serializers.py:806 +#: stock/serializers.py:711 stock/serializers.py:791 stock/serializers.py:887 +#: stock/serializers.py:937 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:588 +#: stock/serializers.py:719 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:596 +#: stock/serializers.py:727 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:607 +#: stock/serializers.py:738 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:620 +#: stock/serializers.py:751 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:655 +#: stock/serializers.py:786 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:690 +#: stock/serializers.py:821 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:703 +#: stock/serializers.py:834 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:720 +#: stock/serializers.py:851 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:882 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:788 +#: stock/serializers.py:919 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:794 +#: stock/serializers.py:925 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:890 stock/serializers.py:953 +#: stock/serializers.py:1021 stock/serializers.py:1084 #: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:213 +#: stock/templates/stock/location.html:222 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1069 +#: stock/serializers.py:1185 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1073 +#: stock/serializers.py:1189 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1077 +#: stock/serializers.py:1193 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1101 +#: stock/serializers.py:1217 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1107 +#: stock/serializers.py:1223 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1115 +#: stock/serializers.py:1231 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1125 stock/serializers.py:1379 +#: stock/serializers.py:1241 stock/serializers.py:1495 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1204 +#: stock/serializers.py:1320 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1209 +#: stock/serializers.py:1325 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1210 +#: stock/serializers.py:1326 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1215 +#: stock/serializers.py:1331 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1216 +#: stock/serializers.py:1332 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1226 +#: stock/serializers.py:1342 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1293 +#: stock/serializers.py:1409 msgid "No Change" msgstr "" -#: stock/serializers.py:1322 +#: stock/serializers.py:1438 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1341 +#: stock/serializers.py:1457 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1369 +#: stock/serializers.py:1485 msgid "Stock transaction notes" msgstr "" +#: stock/status_codes.py:11 +msgid "OK" +msgstr "ΟΚ" + +#: stock/status_codes.py:12 +msgid "Attention needed" +msgstr "Απαιτείται προσοχή" + +#: stock/status_codes.py:13 +msgid "Damaged" +msgstr "Κατεστραμμένο" + +#: stock/status_codes.py:14 +msgid "Destroyed" +msgstr "Καταστράφηκε" + +#: stock/status_codes.py:15 +msgid "Rejected" +msgstr "Απορρίφθηκε" + +#: stock/status_codes.py:19 +msgid "Quarantined" +msgstr "Σε Καραντίνα" + +#: stock/status_codes.py:40 +msgid "Legacy stock tracking entry" +msgstr "Καταχώρηση παλαιού αποθέματος" + +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +msgid "Stock item created" +msgstr "Το αντικείμενο αποθεμάτων δημιουργήθηκε" + +#: stock/status_codes.py:45 +msgid "Edited stock item" +msgstr "Έγινε συγχώνευση αποθεμάτων" + +#: stock/status_codes.py:46 +msgid "Assigned serial number" +msgstr "Εκχωρημένος σειριακός κωδικός" + +#: stock/status_codes.py:49 +msgid "Stock counted" +msgstr "Απόθεμα που μετρήθηκε" + +#: stock/status_codes.py:50 +msgid "Stock manually added" +msgstr "Προστέθηκε απόθεμα χειροκίνητα" + +#: stock/status_codes.py:51 +msgid "Stock manually removed" +msgstr "Αφαιρέθηκε απόθεμα χειροκίνητα" + +#: stock/status_codes.py:54 +msgid "Location changed" +msgstr "Η τοποθεσία τροποποιήθηκε" + +#: stock/status_codes.py:55 +msgid "Stock updated" +msgstr "Το απόθεμα ενημερώθηκε" + +#: stock/status_codes.py:58 +msgid "Installed into assembly" +msgstr "Εγκαταστάθηκε στη συναρμολόγηση" + +#: stock/status_codes.py:59 +msgid "Removed from assembly" +msgstr "Αφαιρέθηκε από τη συναρμολόγηση" + +#: stock/status_codes.py:61 +msgid "Installed component item" +msgstr "Εγκαταστάθηκε αντικείμενο" + +#: stock/status_codes.py:62 +msgid "Removed component item" +msgstr "Αφαιρέθηκε αντικείμενο" + +#: stock/status_codes.py:65 +msgid "Split from parent item" +msgstr "Έγινε διαχωρισμός από το γονεϊκό αρχείο" + +#: stock/status_codes.py:66 +msgid "Split child item" +msgstr "Διαχωρίστηκε θυγατρικό στοιχείο" + +#: stock/status_codes.py:69 templates/js/translated/stock.js:1858 +msgid "Merged stock items" +msgstr "Έγινε συγχώνευση αποθεμάτων" + +#: stock/status_codes.py:72 +msgid "Converted to variant" +msgstr "Μετατράπηκε σε παραλλαγή" + +#: stock/status_codes.py:75 +msgid "Build order output created" +msgstr "Δημιουργήθηκε η έξοδος παραγγελίας" + +#: stock/status_codes.py:76 +msgid "Build order output completed" +msgstr "Η έξοδος της σειράς κατασκευής ολοκληρώθηκε" + +#: stock/status_codes.py:77 +msgid "Build order output rejected" +msgstr "Η εντολή κατασκευής απορρίφθηκε" + +#: stock/status_codes.py:78 templates/js/translated/stock.js:1764 +msgid "Consumed by build order" +msgstr "Κατανάλωση με εντολή κατασκευής" + +#: stock/status_codes.py:81 +msgid "Shipped against Sales Order" +msgstr "Αποστολή έναντι Εντολής Πώλησης" + +#: stock/status_codes.py:84 +msgid "Received against Purchase Order" +msgstr "Λήφθηκε έναντι Εντολής Αγοράς" + +#: stock/status_codes.py:87 +msgid "Returned against Return Order" +msgstr "Επιστράφηκε έναντι Εντολής Αγοράς" + +#: stock/status_codes.py:90 templates/js/translated/table_filters.js:375 +msgid "Sent to customer" +msgstr "Απεστάλη στον πελάτη" + +#: stock/status_codes.py:91 +msgid "Returned from customer" +msgstr "Επιστράφηκε από πελάτη" + #: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" @@ -9319,7 +9504,7 @@ msgstr "" msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:286 +#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:276 msgid "Delete Test Data" msgstr "" @@ -9339,11 +9524,11 @@ msgstr "" msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:274 +#: stock/templates/stock/item.html:264 msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1698 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1701 msgid "Add Test Result" msgstr "" @@ -9366,17 +9551,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1821 +#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1824 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1806 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1815 msgid "Remove stock" msgstr "" @@ -9385,12 +9570,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1830 +#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1833 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1884 +#: templates/js/translated/stock.js:1887 msgid "Assign to customer" msgstr "" @@ -9431,7 +9616,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2121 templates/navbar.html:38 +#: templates/js/translated/build.js:2123 templates/navbar.html:38 msgid "Build" msgstr "Κατασκευή" @@ -9497,7 +9682,7 @@ msgid "Available Quantity" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2378 +#: templates/js/translated/build.js:2380 msgid "No location set" msgstr "" @@ -9528,40 +9713,40 @@ msgstr "" msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:507 -#: templates/js/translated/stock.js:1951 +#: stock/templates/stock/item_base.html:504 +#: templates/js/translated/stock.js:1952 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:532 +#: stock/templates/stock/item_base.html:527 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:541 +#: stock/templates/stock/item_base.html:536 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:552 +#: stock/templates/stock/item_base.html:547 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:616 +#: stock/templates/stock/item_base.html:611 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:619 +#: stock/templates/stock/item_base.html:614 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:620 +#: stock/templates/stock/item_base.html:615 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:628 +#: stock/templates/stock/item_base.html:623 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:662 +#: stock/templates/stock/item_base.html:657 msgid "Return to Stock" msgstr "" @@ -9625,28 +9810,32 @@ msgstr "" msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:217 +#: stock/templates/stock/location.html:176 +msgid "Location Type" +msgstr "" + +#: stock/templates/stock/location.html:226 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:218 +#: stock/templates/stock/location.html:227 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:287 +#: stock/templates/stock/location.html:297 #: templates/js/translated/stock.js:2572 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:315 +#: stock/templates/stock/location.html:319 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:388 +#: stock/templates/stock/location.html:392 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:399 +#: stock/templates/stock/location.html:403 msgid "Link Barcode to Stock Location" msgstr "" @@ -9872,12 +10061,12 @@ msgstr "" msgid "Outgoing email has not been configured. Some login and sign-up features may not work correctly!" msgstr "" -#: templates/InvenTree/settings/login.html:25 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:27 templates/account/signup.html:5 #: templates/socialaccount/signup.html:5 msgid "Signup" msgstr "" -#: templates/InvenTree/settings/login.html:34 +#: templates/InvenTree/settings/login.html:36 msgid "Single Sign On" msgstr "" @@ -9916,11 +10105,11 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:42 +#: templates/InvenTree/settings/part.html:43 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:46 +#: templates/InvenTree/settings/part.html:47 msgid "Import Part" msgstr "" @@ -9954,36 +10143,36 @@ msgstr "" msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:36 +#: templates/InvenTree/settings/plugin.html:38 #: templates/InvenTree/settings/sidebar.html:66 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:42 -#: templates/InvenTree/settings/plugin.html:43 +#: templates/InvenTree/settings/plugin.html:44 +#: templates/InvenTree/settings/plugin.html:45 #: templates/js/translated/plugin.js:151 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:45 -#: templates/InvenTree/settings/plugin.html:46 +#: templates/InvenTree/settings/plugin.html:47 +#: templates/InvenTree/settings/plugin.html:48 #: templates/js/translated/plugin.js:224 msgid "Reload Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:56 +#: templates/InvenTree/settings/plugin.html:58 msgid "External plugins are not enabled for this InvenTree installation" msgstr "" -#: templates/InvenTree/settings/plugin.html:71 +#: templates/InvenTree/settings/plugin.html:73 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:80 +#: templates/InvenTree/settings/plugin.html:82 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:82 +#: templates/InvenTree/settings/plugin.html:84 #: templates/js/translated/notification.js:76 msgid "Message" msgstr "" @@ -10070,20 +10259,20 @@ msgstr "" msgid "Pricing Settings" msgstr "" -#: templates/InvenTree/settings/pricing.html:34 +#: templates/InvenTree/settings/pricing.html:35 msgid "Exchange Rates" msgstr "" -#: templates/InvenTree/settings/pricing.html:38 +#: templates/InvenTree/settings/pricing.html:39 msgid "Update Now" msgstr "" -#: templates/InvenTree/settings/pricing.html:46 -#: templates/InvenTree/settings/pricing.html:50 +#: templates/InvenTree/settings/pricing.html:47 +#: templates/InvenTree/settings/pricing.html:51 msgid "Last Update" msgstr "" -#: templates/InvenTree/settings/pricing.html:50 +#: templates/InvenTree/settings/pricing.html:51 msgid "Never" msgstr "" @@ -10140,8 +10329,8 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:547 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:424 +#: templates/js/translated/part.js:393 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:245 users/models.py:402 msgid "Delete" msgstr "" @@ -10162,7 +10351,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2226 +#: templates/js/translated/build.js:2228 msgid "group" msgstr "" @@ -10181,12 +10370,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1645 +#: templates/js/translated/part.js:1646 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1646 +#: templates/js/translated/part.js:1647 msgid "Delete Template" msgstr "" @@ -10228,7 +10417,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:500 -#: templates/InvenTree/settings/stock.html:37 +#: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -10250,7 +10439,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2159 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2167 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" @@ -10285,7 +10474,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:33 +#: templates/InvenTree/settings/stock.html:34 msgid "Stock Location Types" msgstr "" @@ -10384,49 +10573,49 @@ msgstr "" msgid "Remove multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:171 msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 +#: templates/InvenTree/settings/user.html:177 msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:175 +#: templates/InvenTree/settings/user.html:178 msgid "Log Out Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:184 +#: templates/InvenTree/settings/user.html:187 msgid "unknown on unknown" msgstr "" -#: templates/InvenTree/settings/user.html:185 +#: templates/InvenTree/settings/user.html:188 msgid "unknown" msgstr "" -#: templates/InvenTree/settings/user.html:189 +#: templates/InvenTree/settings/user.html:192 msgid "IP Address" msgstr "" -#: templates/InvenTree/settings/user.html:190 +#: templates/InvenTree/settings/user.html:193 msgid "Device" msgstr "" -#: templates/InvenTree/settings/user.html:191 +#: templates/InvenTree/settings/user.html:194 msgid "Last Activity" msgstr "" -#: templates/InvenTree/settings/user.html:204 +#: templates/InvenTree/settings/user.html:207 #, python-format msgid "%(time)s ago (this session)" msgstr "" -#: templates/InvenTree/settings/user.html:206 +#: templates/InvenTree/settings/user.html:209 #, python-format msgid "%(time)s ago" msgstr "" -#: templates/InvenTree/settings/user.html:218 +#: templates/InvenTree/settings/user.html:223 msgid "Do you really want to remove the selected email address?" msgstr "" @@ -10576,7 +10765,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:585 +#: templates/js/translated/helpers.js:589 msgid "copy to clipboard" msgstr "" @@ -10607,26 +10796,26 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:17 -#: templates/account/login.html:38 templates/socialaccount/login.html:5 +#: templates/account/login.html:6 templates/account/login.html:19 +#: templates/account/login.html:40 templates/socialaccount/login.html:5 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:23 msgid "Not a member?" msgstr "" -#: templates/account/login.html:23 templates/account/signup.html:11 +#: templates/account/login.html:25 templates/account/signup.html:11 #: templates/account/signup.html:22 templates/socialaccount/signup.html:8 #: templates/socialaccount/signup.html:23 msgid "Sign Up" msgstr "" -#: templates/account/login.html:45 +#: templates/account/login.html:47 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:53 +#: templates/account/login.html:55 msgid "or log in with" msgstr "" @@ -10640,7 +10829,7 @@ msgid "Are you sure you want to sign out?" msgstr "" #: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35 -#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:44 +#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:45 msgid "Return to Site" msgstr "" @@ -10754,15 +10943,19 @@ msgstr "" msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." msgstr "" -#: templates/allauth_2fa/setup.html:23 +#: templates/allauth_2fa/setup.html:20 +msgid "Secret: " +msgstr "" + +#: templates/allauth_2fa/setup.html:24 msgid "Step 2" msgstr "" -#: templates/allauth_2fa/setup.html:27 +#: templates/allauth_2fa/setup.html:28 msgid "Input a token generated by the app:" msgstr "" -#: templates/allauth_2fa/setup.html:37 +#: templates/allauth_2fa/setup.html:38 msgid "Verify" msgstr "" @@ -10827,7 +11020,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:2557 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2556 msgid "Required Quantity" msgstr "" @@ -10841,7 +11034,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3218 +#: templates/js/translated/part.js:3219 msgid "Minimum Quantity" msgstr "" @@ -10929,27 +11122,27 @@ msgstr "" msgid "Delete attachments" msgstr "" -#: templates/js/translated/attachment.js:253 +#: templates/js/translated/attachment.js:260 msgid "Attachment actions" msgstr "" -#: templates/js/translated/attachment.js:275 +#: templates/js/translated/attachment.js:294 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:315 +#: templates/js/translated/attachment.js:334 msgid "Edit Attachment" msgstr "" -#: templates/js/translated/attachment.js:346 +#: templates/js/translated/attachment.js:365 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:366 +#: templates/js/translated/attachment.js:385 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:374 +#: templates/js/translated/attachment.js:393 msgid "Delete attachment" msgstr "" @@ -11006,7 +11199,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1155 +#: templates/js/translated/barcode.js:567 templates/js/translated/stock.js:1158 msgid "Remove stock item" msgstr "" @@ -11196,7 +11389,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2501 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2500 msgid "Variant stock allowed" msgstr "" @@ -11216,30 +11409,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2622 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2621 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2596 -#: templates/js/translated/sales_order.js:1910 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2595 +#: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2600 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2599 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2602 -#: templates/js/translated/part.js:1256 -#: templates/js/translated/sales_order.js:1907 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2601 +#: templates/js/translated/part.js:1257 +#: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2604 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2603 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2587 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2586 msgid "Consumable item" msgstr "" @@ -11271,7 +11464,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2486 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2485 msgid "Required Part" msgstr "" @@ -11440,207 +11633,207 @@ msgstr "" msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:989 templates/js/translated/build.js:2342 +#: templates/js/translated/build.js:991 templates/js/translated/build.js:2344 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/build.js:1003 +#: templates/js/translated/build.js:1005 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1025 +#: templates/js/translated/build.js:1027 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1043 +#: templates/js/translated/build.js:1045 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1061 +#: templates/js/translated/build.js:1063 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1115 +#: templates/js/translated/build.js:1116 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1116 +#: templates/js/translated/build.js:1117 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1120 +#: templates/js/translated/build.js:1121 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1387 +#: templates/js/translated/build.js:1390 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1401 +#: templates/js/translated/build.js:1404 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:1576 #: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1171 +#: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1574 -#: templates/js/translated/sales_order.js:1172 +#: templates/js/translated/build.js:1577 +#: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1637 -#: templates/js/translated/sales_order.js:1121 +#: templates/js/translated/build.js:1640 +#: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1714 +#: templates/js/translated/build.js:1717 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1715 +#: templates/js/translated/build.js:1718 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1729 -#: templates/js/translated/sales_order.js:1186 +#: templates/js/translated/build.js:1732 +#: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1757 +#: templates/js/translated/build.js:1760 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1768 -#: templates/js/translated/sales_order.js:1283 +#: templates/js/translated/build.js:1771 +#: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1841 -#: templates/js/translated/sales_order.js:1362 +#: templates/js/translated/build.js:1844 +#: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1938 +#: templates/js/translated/build.js:1941 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1939 +#: templates/js/translated/build.js:1942 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1941 +#: templates/js/translated/build.js:1944 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1942 +#: templates/js/translated/build.js:1945 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:1946 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:1974 +#: templates/js/translated/build.js:1977 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2080 +#: templates/js/translated/build.js:2082 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2115 templates/js/translated/build.js:2480 -#: templates/js/translated/forms.js:2155 templates/js/translated/forms.js:2171 +#: templates/js/translated/build.js:2117 templates/js/translated/build.js:2479 +#: templates/js/translated/forms.js:2163 templates/js/translated/forms.js:2179 #: templates/js/translated/part.js:2316 templates/js/translated/part.js:2742 -#: templates/js/translated/stock.js:1982 templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:1983 templates/js/translated/stock.js:2710 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2131 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2175 -msgid "Progress" -msgstr "" - -#: templates/js/translated/build.js:2211 templates/js/translated/stock.js:3042 +#: templates/js/translated/build.js:2213 templates/js/translated/stock.js:3042 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2387 -#: templates/js/translated/sales_order.js:1646 +#: templates/js/translated/build.js:2389 +#: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2388 -#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/build.js:2390 +#: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2405 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2415 +#: templates/js/translated/build.js:2417 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2456 +#: templates/js/translated/build.js:2455 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2457 +#: templates/js/translated/build.js:2456 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2475 +#: templates/js/translated/build.js:2474 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2505 templates/js/translated/part.js:790 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/build.js:2504 templates/js/translated/part.js:791 +#: templates/js/translated/part.js:1203 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2540 +#: templates/js/translated/build.js:2539 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2592 -#: templates/js/translated/sales_order.js:1915 +#: templates/js/translated/build.js:2591 +#: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2646 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2653 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2659 -#: templates/js/translated/sales_order.js:2016 +#: templates/js/translated/build.js:2654 +msgid "Allocate tracked items against individual build outputs" +msgstr "" + +#: templates/js/translated/build.js:2662 +#: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2664 templates/js/translated/stock.js:1865 +#: templates/js/translated/build.js:2667 templates/js/translated/stock.js:1868 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2668 -#: templates/js/translated/sales_order.js:2010 +#: templates/js/translated/build.js:2671 +#: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2672 +#: templates/js/translated/build.js:2675 msgid "Remove stock allocation" msgstr "" @@ -11787,7 +11980,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2244 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2245 msgid "Order parts" msgstr "" @@ -11804,34 +11997,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 -#: templates/js/translated/part.js:1210 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:799 +#: templates/js/translated/part.js:1211 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 -#: templates/js/translated/part.js:1214 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:803 +#: templates/js/translated/part.js:1215 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1464 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1465 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1527 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1528 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1528 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1529 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1433 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1434 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1549 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1550 msgid "Delete Parameter" msgstr "" @@ -11886,12 +12079,12 @@ msgid "Delete price break" msgstr "" #: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:672 +#: templates/js/translated/filters.js:667 msgid "true" msgstr "" #: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:673 +#: templates/js/translated/filters.js:668 msgid "false" msgstr "" @@ -11923,7 +12116,7 @@ msgstr "" msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:582 +#: templates/js/translated/filters.js:577 msgid "Create filter" msgstr "" @@ -11956,32 +12149,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1473 templates/modals.html:19 +#: templates/js/translated/forms.js:1477 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1971 +#: templates/js/translated/forms.js:1975 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2275 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2285 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2489 +#: templates/js/translated/forms.js:2499 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3091 +#: templates/js/translated/forms.js:3101 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3103 +#: templates/js/translated/forms.js:3113 msgid "Select Columns" msgstr "" @@ -12005,51 +12198,15 @@ msgstr "" msgid "No parts required for builds" msgstr "" -#: templates/js/translated/label.js:53 templates/js/translated/report.js:123 +#: templates/js/translated/label.js:55 templates/js/translated/report.js:38 msgid "Select Items" msgstr "" -#: templates/js/translated/label.js:54 +#: templates/js/translated/label.js:56 templates/js/translated/report.js:39 msgid "No items selected for printing" msgstr "" -#: templates/js/translated/label.js:72 -msgid "No Labels Found" -msgstr "" - -#: templates/js/translated/label.js:73 -msgid "No label templates found which match the selected items" -msgstr "" - -#: templates/js/translated/label.js:97 -msgid "selected" -msgstr "" - -#: templates/js/translated/label.js:133 -msgid "Printing Options" -msgstr "" - -#: templates/js/translated/label.js:148 -msgid "Print label" -msgstr "" - -#: templates/js/translated/label.js:148 -msgid "Print labels" -msgstr "" - -#: templates/js/translated/label.js:149 -msgid "Print" -msgstr "" - -#: templates/js/translated/label.js:155 -msgid "Select label template" -msgstr "" - -#: templates/js/translated/label.js:168 -msgid "Select plugin" -msgstr "" - -#: templates/js/translated/label.js:187 +#: templates/js/translated/label.js:150 msgid "Labels sent to printer" msgstr "" @@ -12118,7 +12275,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1604 +#: templates/js/translated/part.js:1605 msgid "ID" msgstr "" @@ -12167,7 +12324,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:1991 +#: templates/js/translated/purchase_order.js:1990 msgid "No line items found" msgstr "" @@ -12199,249 +12356,249 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:308 +#: templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:332 templates/js/translated/stock.js:175 +#: templates/js/translated/part.js:333 templates/js/translated/stock.js:175 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:355 +#: templates/js/translated/part.js:356 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:356 +#: templates/js/translated/part.js:357 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:370 +#: templates/js/translated/part.js:371 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:383 +#: templates/js/translated/part.js:384 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:388 +#: templates/js/translated/part.js:389 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:397 +#: templates/js/translated/part.js:398 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:401 +#: templates/js/translated/part.js:402 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:406 +#: templates/js/translated/part.js:407 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:431 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:433 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:433 +#: templates/js/translated/part.js:434 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:461 +#: templates/js/translated/part.js:462 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:464 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:474 +#: templates/js/translated/part.js:475 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:532 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:532 +#: templates/js/translated/part.js:533 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:546 +#: templates/js/translated/part.js:547 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:549 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:549 +#: templates/js/translated/part.js:550 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:551 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:557 +#: templates/js/translated/part.js:558 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:593 +#: templates/js/translated/part.js:594 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:596 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:600 +#: templates/js/translated/part.js:601 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:603 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:619 +#: templates/js/translated/part.js:620 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:629 +#: templates/js/translated/part.js:630 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:632 +#: templates/js/translated/part.js:633 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:657 +#: templates/js/translated/part.js:658 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:685 +#: templates/js/translated/part.js:686 #: templates/js/translated/table_filters.js:747 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:688 +#: templates/js/translated/part.js:689 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:748 +#: templates/js/translated/part.js:749 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:771 +#: templates/js/translated/part.js:772 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:794 templates/js/translated/part.js:1206 +#: templates/js/translated/part.js:795 templates/js/translated/part.js:1207 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:806 +#: templates/js/translated/part.js:807 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:810 +#: templates/js/translated/part.js:811 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:889 +#: templates/js/translated/part.js:890 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:897 +#: templates/js/translated/part.js:898 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:901 +#: templates/js/translated/part.js:902 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1050 +#: templates/js/translated/part.js:1051 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1144 +#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1145 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1154 +#: templates/js/translated/part.js:1113 templates/js/translated/part.js:1155 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1281 +#: templates/js/translated/part.js:1282 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:1600 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1662 +#: templates/js/translated/part.js:1663 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1674 +#: templates/js/translated/part.js:1675 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1683 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1716 -#: templates/js/translated/purchase_order.js:1655 +#: templates/js/translated/part.js:1717 +#: templates/js/translated/purchase_order.js:1654 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1860 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/return_order.js:756 -#: templates/js/translated/sales_order.js:1875 +#: templates/js/translated/part.js:1861 +#: templates/js/translated/purchase_order.js:2153 +#: templates/js/translated/return_order.js:755 +#: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1906 -#: templates/js/translated/purchase_order.js:2221 +#: templates/js/translated/part.js:1907 +#: templates/js/translated/purchase_order.js:2220 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1969 +#: templates/js/translated/part.js:1970 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1991 +#: templates/js/translated/part.js:1992 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2079 templates/js/translated/part.js:2506 +#: templates/js/translated/part.js:2080 templates/js/translated/part.js:2506 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2200 +#: templates/js/translated/part.js:2201 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2205 +#: templates/js/translated/part.js:2206 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2235 +#: templates/js/translated/part.js:2236 msgid "Set category" msgstr "" @@ -12482,64 +12639,64 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2864 +#: templates/js/translated/part.js:2865 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2886 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2887 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2936 templates/js/translated/stock.js:1453 +#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1456 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2937 templates/js/translated/stock.js:1454 -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/part.js:2938 templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1731 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2941 +#: templates/js/translated/part.js:2942 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2958 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2971 +#: templates/js/translated/part.js:2972 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3050 templates/js/translated/part.js:3051 +#: templates/js/translated/part.js:3051 templates/js/translated/part.js:3052 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3053 +#: templates/js/translated/part.js:3054 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3059 +#: templates/js/translated/part.js:3060 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3109 +#: templates/js/translated/part.js:3110 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3115 +#: templates/js/translated/part.js:3116 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3211 +#: templates/js/translated/part.js:3212 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3227 +#: templates/js/translated/part.js:3228 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3272 +#: templates/js/translated/part.js:3273 msgid "Minimum Stock Level" msgstr "" @@ -12665,7 +12822,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:448 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:552 msgid "Mark this order as complete?" msgstr "" @@ -12678,7 +12835,6 @@ msgid "This order has line items which have not been marked as received." msgstr "" #: templates/js/translated/purchase_order.js:460 -#: templates/js/translated/sales_order.js:514 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" @@ -12736,12 +12892,12 @@ msgid "No matching purchase orders" msgstr "" #: templates/js/translated/purchase_order.js:1073 -#: templates/js/translated/return_order.js:491 +#: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" #: templates/js/translated/purchase_order.js:1074 -#: templates/js/translated/return_order.js:492 +#: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" @@ -12790,7 +12946,7 @@ msgid "Quantity to Receive" msgstr "" #: templates/js/translated/purchase_order.js:1333 -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Confirm receipt of items" msgstr "" @@ -12810,81 +12966,66 @@ msgstr "" msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1682 -#: templates/js/translated/return_order.js:286 -#: templates/js/translated/sales_order.js:774 -#: templates/js/translated/sales_order.js:998 +#: templates/js/translated/purchase_order.js:1681 +#: 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:1748 -#: templates/js/translated/return_order.js:354 -#: templates/js/translated/sales_order.js:851 -#: templates/js/translated/sales_order.js:1011 -msgid "Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:1844 +#: templates/js/translated/purchase_order.js:1843 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1862 +#: templates/js/translated/purchase_order.js:1861 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1917 -#: templates/js/translated/sales_order.js:2070 +#: templates/js/translated/purchase_order.js:1916 +#: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1932 -#: templates/js/translated/return_order.js:476 -#: templates/js/translated/return_order.js:669 -#: templates/js/translated/sales_order.js:2083 +#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/return_order.js:475 +#: templates/js/translated/return_order.js:668 +#: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1943 -#: templates/js/translated/return_order.js:682 -#: templates/js/translated/sales_order.js:2094 +#: templates/js/translated/purchase_order.js:1942 +#: templates/js/translated/return_order.js:681 +#: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2225 -#: templates/js/translated/sales_order.js:2024 +#: templates/js/translated/purchase_order.js:2224 +#: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2226 -#: templates/js/translated/return_order.js:801 -#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/purchase_order.js:2225 +#: templates/js/translated/return_order.js:800 +#: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2227 -#: templates/js/translated/return_order.js:805 -#: templates/js/translated/sales_order.js:2031 +#: templates/js/translated/purchase_order.js:2226 +#: templates/js/translated/return_order.js:804 +#: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:63 -msgid "items selected" +#: templates/js/translated/report.js:49 +msgid "Print Report" msgstr "" -#: templates/js/translated/report.js:71 -msgid "Select Report Template" +#: templates/js/translated/report.js:68 +msgid "Report print successful" msgstr "" -#: templates/js/translated/report.js:86 -msgid "Select Test Report Template" -msgstr "" - -#: templates/js/translated/report.js:140 -msgid "No Reports Found" -msgstr "" - -#: templates/js/translated/report.js:141 -msgid "No report templates found which match the selected items" +#: templates/js/translated/report.js:73 +msgid "Report printing failed" msgstr "" #: templates/js/translated/return_order.js:60 @@ -12916,25 +13057,25 @@ msgstr "" msgid "Complete Return Order" msgstr "" -#: templates/js/translated/return_order.js:266 +#: templates/js/translated/return_order.js:265 msgid "No return orders found" msgstr "" -#: templates/js/translated/return_order.js:300 -#: templates/js/translated/sales_order.js:788 +#: templates/js/translated/return_order.js:299 +#: templates/js/translated/sales_order.js:824 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:562 +#: templates/js/translated/return_order.js:561 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:693 -#: templates/js/translated/sales_order.js:2231 +#: templates/js/translated/return_order.js:692 +#: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:798 +#: templates/js/translated/return_order.js:797 msgid "Mark item as received" msgstr "" @@ -12978,140 +13119,156 @@ msgstr "" msgid "Skip" msgstr "" +#: templates/js/translated/sales_order.js:484 +msgid "Ship Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:500 +msgid "Ship this order?" +msgstr "" + +#: templates/js/translated/sales_order.js:506 +msgid "Order cannot be shipped as there are incomplete shipments" +msgstr "" + #: templates/js/translated/sales_order.js:513 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:535 +#: templates/js/translated/sales_order.js:514 +msgid "Shipping this order means that the order and line items will no longer be editable." +msgstr "" + +#: templates/js/translated/sales_order.js:572 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:540 +#: templates/js/translated/sales_order.js:577 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:559 +#: templates/js/translated/sales_order.js:596 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:564 +#: templates/js/translated/sales_order.js:601 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:618 +#: templates/js/translated/sales_order.js:655 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:728 +#: templates/js/translated/sales_order.js:764 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:908 +#: templates/js/translated/sales_order.js:944 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:911 +#: templates/js/translated/sales_order.js:947 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:916 +#: templates/js/translated/sales_order.js:952 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:933 +#: templates/js/translated/sales_order.js:969 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:948 +#: templates/js/translated/sales_order.js:984 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:981 +#: templates/js/translated/sales_order.js:1017 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1006 +#: templates/js/translated/sales_order.js:1042 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1030 -#: templates/js/translated/sales_order.js:1529 +#: templates/js/translated/sales_order.js:1066 +#: templates/js/translated/sales_order.js:1565 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1048 +#: templates/js/translated/sales_order.js:1084 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1052 +#: templates/js/translated/sales_order.js:1088 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1219 +#: templates/js/translated/sales_order.js:1255 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1270 +#: templates/js/translated/sales_order.js:1306 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1271 +#: templates/js/translated/sales_order.js:1307 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1477 +#: templates/js/translated/sales_order.js:1513 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1569 +#: templates/js/translated/sales_order.js:1605 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1583 +#: templates/js/translated/sales_order.js:1619 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1584 +#: templates/js/translated/sales_order.js:1620 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1623 -#: templates/js/translated/sales_order.js:1710 -#: templates/js/translated/stock.js:1773 +#: templates/js/translated/sales_order.js:1659 +#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/stock.js:1776 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1631 -#: templates/js/translated/sales_order.js:1719 +#: templates/js/translated/sales_order.js:1667 +#: templates/js/translated/sales_order.js:1755 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2008 +#: templates/js/translated/sales_order.js:2044 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/sales_order.js:2012 +#: templates/js/translated/sales_order.js:2048 msgid "Purchase stock" msgstr "" -#: templates/js/translated/sales_order.js:2021 -#: templates/js/translated/sales_order.js:2209 +#: templates/js/translated/sales_order.js:2057 +#: templates/js/translated/sales_order.js:2245 msgid "Calculate price" msgstr "" -#: templates/js/translated/sales_order.js:2035 +#: templates/js/translated/sales_order.js:2071 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2074 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/sales_order.js:2109 +#: templates/js/translated/sales_order.js:2145 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2217 +#: templates/js/translated/sales_order.js:2253 msgid "Update Unit Price" msgstr "" @@ -13319,7 +13476,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:414 +#: templates/js/translated/stock.js:1042 users/models.py:392 msgid "Add" msgstr "" @@ -13327,180 +13484,180 @@ msgstr "" msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1143 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:1180 templates/js/translated/stock.js:3299 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1178 +#: templates/js/translated/stock.js:1181 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1224 +#: templates/js/translated/stock.js:1227 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1360 +#: templates/js/translated/stock.js:1363 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1362 +#: templates/js/translated/stock.js:1365 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1367 +#: templates/js/translated/stock.js:1370 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1447 +#: templates/js/translated/stock.js:1450 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1450 +#: templates/js/translated/stock.js:1453 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1473 +#: templates/js/translated/stock.js:1476 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1540 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1550 +#: templates/js/translated/stock.js:1553 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1562 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1713 +#: templates/js/translated/stock.js:1716 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1733 +#: templates/js/translated/stock.js:1736 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1765 +#: templates/js/translated/stock.js:1768 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1769 +#: templates/js/translated/stock.js:1772 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1777 +#: templates/js/translated/stock.js:1780 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1786 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1839 +#: templates/js/translated/stock.js:1842 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1848 +#: templates/js/translated/stock.js:1851 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1897 +#: templates/js/translated/stock.js:1900 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:1952 +#: templates/js/translated/stock.js:1953 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:1957 +#: templates/js/translated/stock.js:1958 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1969 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2012 +#: templates/js/translated/stock.js:2013 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2090 +#: templates/js/translated/stock.js:2091 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2095 +#: templates/js/translated/stock.js:2096 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2101 +#: templates/js/translated/stock.js:2102 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2103 +#: templates/js/translated/stock.js:2104 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2105 +#: templates/js/translated/stock.js:2106 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2108 +#: templates/js/translated/stock.js:2109 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2110 +#: templates/js/translated/stock.js:2111 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2114 +#: templates/js/translated/stock.js:2115 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2116 +#: templates/js/translated/stock.js:2117 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2123 +#: templates/js/translated/stock.js:2124 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2125 +#: templates/js/translated/stock.js:2126 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2129 +#: templates/js/translated/stock.js:2130 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2294 +#: templates/js/translated/stock.js:2295 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2342 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2469 +#: templates/js/translated/stock.js:2470 msgid "No stock items matching query" msgstr "" @@ -13973,6 +14130,22 @@ msgstr "" msgid "Show all notifications and history" msgstr "" +#: templates/pui_banner.html:9 +msgid "Platform UI - the new UI for InvenTree - provides more modern administration options." +msgstr "" + +#: templates/pui_banner.html:12 +msgid "Platform UI - the new UI for InvenTree - is ready to be tested." +msgstr "" + +#: templates/pui_banner.html:15 +msgid "Try it out now" +msgstr "" + +#: templates/pui_banner.html:15 +msgid "here" +msgstr "" + #: templates/qr_code.html:11 msgid "QR data not provided" msgstr "" @@ -14194,35 +14367,34 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:397 +#: users/models.py:375 msgid "Permission set" msgstr "" -#: users/models.py:406 +#: users/models.py:384 msgid "Group" msgstr "" -#: users/models.py:410 +#: users/models.py:388 msgid "View" msgstr "" -#: users/models.py:410 +#: users/models.py:388 msgid "Permission to view items" msgstr "" -#: users/models.py:414 +#: users/models.py:392 msgid "Permission to add items" msgstr "" -#: users/models.py:418 +#: users/models.py:396 msgid "Change" msgstr "" -#: users/models.py:420 +#: users/models.py:398 msgid "Permissions to edit items" msgstr "" -#: users/models.py:426 +#: users/models.py:404 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po index f40d3d6c40..050f629123 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-04-20 13:19+0000\n" +"POT-Creation-Date: 2024-06-19 04:39+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME
| {% trans "Part" %} | +{% trans "Serial Number" %} | +{% trans "Reference" %} | +{% trans "Note" %} | +
|---|---|---|---|
|
+
+
+
+ {{ line.item.part.full_name }}
+
+ |
+ {{ line.item.serial }} | +{{ line.reference }} | +{{ line.notes }} | +
| {% trans "Extra Line Items" %} | |||
| + | + | {{ line.reference }} | +{{ line.notes }} | +
| {% trans "Part" %} | -{% trans "Serial Number" %} | -{% trans "Reference" %} | -{% trans "Note" %} | -
|---|---|---|---|
|
-
-
-
- {{ line.item.part.full_name }}
-
- |
- {{ line.item.serial }} | -{{ line.reference }} | -{{ line.notes }} | -
| {% trans "Extra Line Items" %} | |||
| - | - | {{ line.reference }} | -{{ line.notes }} | -
{{ part.description }}
+{{ stock_item.location }}
+Stock Item ID: {{ stock_item.pk }}
+| {% trans "Test" %} | +{% trans "Result" %} | +{% trans "Value" %} | +{% trans "User" %} | +{% trans "Date" %} | +|||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + {% if test_template %} + {% render_html_text test_template.test_name bold=test_template.required %} + {% elif test_result %} + {% render_html_text test_result.test italic=True %} + {% else %} + + {{ key }} + {% endif %} + | + {% if test_result %} + {% if test_result.result %} +{% trans "Pass" %} | + {% else %} +{% trans "Fail" %} | + {% endif %} +{{ test_result.value }} | +{{ test_result.user.username }} | +{% format_date test_result.date.date %} | + {% else %} + {% if test_template.required %} +{% trans "No result (required)" %} | + {% else %} +{% trans "No result" %} | + {% endif %} + {% endif %} +||||||
|
+ |
+ + {% if sub_item.serialized %} + {% trans "Serial" %}: {{ sub_item.serial }} + {% else %} + {% trans "Quantity" %}: {% decimal sub_item.quantity %} + {% endif %} + | +
{{ part.description }}
-{{ stock_item.location }}
-Stock Item ID: {{ stock_item.pk }}
-| {% trans "Test" %} | -{% trans "Result" %} | -{% trans "Value" %} | -{% trans "User" %} | -{% trans "Date" %} | -|||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - {% if test_template %} - {% render_html_text test_template.test_name bold=test_template.required %} - {% elif test_result %} - {% render_html_text test_result.test italic=True %} - {% else %} - - {{ key }} - {% endif %} - | - {% if test_result %} - {% if test_result.result %} -{% trans "Pass" %} | - {% else %} -{% trans "Fail" %} | - {% endif %} -{{ test_result.value }} | -{{ test_result.user.username }} | -{% format_date test_result.date.date %} | - {% else %} - {% if test_template.required %} -{% trans "No result (required)" %} | - {% else %} -{% trans "No result" %} | - {% endif %} - {% endif %} -||||||
|
- |
- - {% if sub_item.serialized %} - {% trans "Serial" %}: {{ sub_item.serial }} - {% else %} - {% trans "Quantity" %}: {% decimal sub_item.quantity %} - {% endif %} - | -
{% trans 'Secret: ' %}{{ secret }}