diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000..b252c260bc --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,47 @@ +# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.241.1/containers/python-3/.devcontainer/base.Dockerfile + +# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.10, 3.9, 3.8, 3.7, 3.6, 3-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye, 3.7-bullseye, 3.6-bullseye, 3-buster, 3.10-buster, 3.9-buster, 3.8-buster, 3.7-buster, 3.6-buster +ARG VARIANT="3.10-bullseye" +FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT} + +# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10 +ARG NODE_VERSION="none" +RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi + +# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image. +# COPY requirements.txt /tmp/pip-tmp/ +# RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \ +# && rm -rf /tmp/pip-tmp + +# [Optional] Uncomment this section to install additional OS packages. +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && \ + apt-get -y install --no-install-recommends \ + git gcc g++ gettext gnupg libffi-dev \ + # Weasyprint requirements : https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#debian-11 + poppler-utils libpango-1.0-0 libpangoft2-1.0-0 \ + # Image format support + libjpeg-dev webp \ + # SQLite support + sqlite3 \ + # PostgreSQL support + libpq-dev \ + # MySQL / MariaDB support + default-libmysqlclient-dev mariadb-client && \ + apt-get autoclean && apt-get autoremove + +# [Optional] Uncomment this line to install global node packages. +# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 + +# Update pip +RUN pip install --upgrade pip + +# Install required base-level python packages +COPY ./docker/requirements.txt base_requirements.txt +RUN pip install --disable-pip-version-check -U -r base_requirements.txt + +# preserve command history between container starts +# Ref: https://code.visualstudio.com/remote/advancedcontainers/persist-bash-history +# Folder will be created in 'postCreateCommand' in devcontainer.json as it's not preserved due to the bind mount +RUN echo "export PROMPT_COMMAND='history -a' && export HISTFILE=/workspaces/InvenTree/dev/commandhistory/.bash_history" >> "/home/vscode/.bashrc" + +WORKDIR /workspaces/InvenTree diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..3d77ab14a2 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,87 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.241.1/containers/python-3 +{ + "name": "InvenTree", + "build": { + "dockerfile": "Dockerfile", + "context": "..", + "args": { + // Update 'VARIANT' to pick a Python version: 3, 3.10, 3.9, 3.8, 3.7, 3.6 + // Append -bullseye or -buster to pin to an OS version. + // Use -bullseye variants on local on arm64/Apple Silicon. + "VARIANT": "3.10-bullseye", + // Options + "NODE_VERSION": "lts/*" + } + }, + + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Set *default* container specific settings.json values on container create. + "settings": { + "python.defaultInterpreterPath": "/workspaces/InvenTree/dev/venv/bin/python", + "python.linting.enabled": true, + "python.linting.pylintEnabled": false, + "python.linting.flake8Enabled": true, + "python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8", + "python.formatting.blackPath": "/usr/local/py-utils/bin/black", + "python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf", + "python.linting.banditPath": "/usr/local/py-utils/bin/bandit", + "python.linting.flake8Path": "/usr/local/py-utils/bin/flake8", + "python.linting.mypyPath": "/usr/local/py-utils/bin/mypy", + "python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle", + "python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle", + "python.linting.pylintPath": "/usr/local/py-utils/bin/pylint" + }, + + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "ms-python.python", + "ms-python.vscode-pylance", + "batisteo.vscode-django" + ] + } + }, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + "forwardPorts": [8000], + "portsAttributes": { + "8000": { + "label": "InvenTree server" + } + }, + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "./.devcontainer/postCreateCommand.sh", + + // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "vscode", + "features": { + "git": "os-provided", + "github-cli": "latest" + }, + + "remoteEnv": { + // Inventree config + "INVENTREE_DEBUG": "True", + "INVENTREE_DEBUG_LEVEL": "INFO", + "INVENTREE_DB_ENGINE": "sqlite3", + "INVENTREE_DB_NAME": "/workspaces/InvenTree/dev/database.sqlite3", + "INVENTREE_MEDIA_ROOT": "/workspaces/InvenTree/dev/media", + "INVENTREE_STATIC_ROOT": "/workspaces/InvenTree/dev/static", + "INVENTREE_CONFIG_FILE": "/workspaces/InvenTree/dev/config.yaml", + "INVENTREE_SECRET_KEY_FILE": "/workspaces/InvenTree/dev/secret_key.txt", + "INVENTREE_PLUGIN_DIR": "/workspaces/InvenTree/dev/plugins", + "INVENTREE_PLUGIN_FILE": "/workspaces/InvenTree/dev/plugins.txt", + + // Python config + "PIP_USER": "no", + + // used to load the venv into the PATH and avtivate it + // Ref: https://stackoverflow.com/a/56286534 + "VIRTUAL_ENV": "/workspaces/InvenTree/dev/venv", + "PATH": "/workspaces/InvenTree/dev/venv/bin:${containerEnv:PATH}" + } +} diff --git a/.devcontainer/postCreateCommand.sh b/.devcontainer/postCreateCommand.sh new file mode 100755 index 0000000000..30e506383e --- /dev/null +++ b/.devcontainer/postCreateCommand.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# create folders +mkdir -p /workspaces/InvenTree/dev/{commandhistory,plugins} +cd /workspaces/InvenTree + +# create venv +python3 -m venv dev/venv +. dev/venv/bin/activate + +# setup inventree server +pip install invoke +inv update +inv setup-dev diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 55585c7670..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -name: Bug -about: Create a bug report to help us improve InvenTree! -title: "[BUG] Enter bug description" -labels: bug, question -assignees: '' - ---- - - - - -**Describe the bug** - - -**Steps to Reproduce** - -Steps to reproduce the behavior: - - -**Expected behavior** - - - - -**Deployment Method** -- [ ] Docker -- [ ] Bare Metal - -**Version Information** - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 0000000000..2c1bad0593 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,62 @@ +name: "Bug" +description: "Create a bug report to help us improve InvenTree!" +labels: ["bug", "question", "triage:not-checked"] +body: + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "Please verify that this bug has NOT been raised before." + description: "Search in the issues sections by clicking [HERE](https://github.com/inventree/inventree/issues?q=)" + options: + - label: "I checked and didn't find similar issue" + required: true + - type: textarea + id: description + validations: + required: true + attributes: + label: "Describe the bug*" + description: "A clear and concise description of what the bug is." + - type: textarea + id: steps-to-reproduce + validations: + required: true + attributes: + label: "Steps to Reproduce" + description: "Steps to reproduce the behavior, please make it detailed" + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + - type: textarea + id: expected-behavior + validations: + required: true + attributes: + label: "Expected behavior" + description: "A clear and concise description of what you expected to happen." + placeholder: "..." + - type: checkboxes + id: deployment + attributes: + label: "Deployment Method" + options: + - label: "Docker" + - label: "Bare metal" + - type: textarea + id: version-info + validations: + required: true + attributes: + label: "Version Information" + description: "The version info block." + placeholder: "You can get this by going to the `About InvenTree` section in the upper right corner and clicking on to the `copy version information`" + - type: textarea + id: logs + attributes: + label: "Relevant log output" + description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: shell + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index ca9ff88a58..0000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: "[FR]" -labels: enhancement -assignees: '' - ---- - -**Is your feature request the result of a bug?** -Please link it here. - -**Problem** -A clear and concise description of what the problem is. e.g. I'm always frustrated when [...] - -**Suggested solution** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Examples of other systems** -Show how other software handles your FR if you have examples. - -**Do you want to develop this?** -If so please describe briefly how you would like to implement it (so we can give advice) and if you have experience in the needed technology (you do not need to be a pro - this is just as a information for us). diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml new file mode 100644 index 0000000000..72fd4938a6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -0,0 +1,53 @@ +name: Feature Request +description: Suggest an idea for this project +title: "[FR] title" +labels: ["enhancement", "triage:not-checked"] +body: + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "Please verify that this feature request has NOT been suggested before." + description: "Search in the issues sections by clicking [HERE](https://github.com/inventree/inventree/issues?q=)" + options: + - label: "I checked and didn't find similar feature request" + required: true + - type: textarea + id: problem + validations: + required: true + attributes: + label: "Problem statement" + description: "A clear and concise description of what the solved problem or feature request is." + placeholder: "I am always struggeling with ..." + - type: textarea + id: solution + validations: + required: true + attributes: + label: "Suggested solution" + description: "A clear and concise description of what you want to happen." + placeholder: "In my use-case, ..." + - type: textarea + id: alternatives + validations: + required: true + attributes: + label: "Describe alternatives you've considered" + description: "A clear and concise description of any alternative solutions or features you've considered." + placeholder: "This could also be done by doing ..." + - type: textarea + id: examples + validations: + required: false + attributes: + label: "Examples of other systems" + description: "Show how other software handles your FR if you have examples." + placeholder: "I software xxx this is done in the following way..." + - type: checkboxes + id: self-develop + attributes: + label: "Do you want to develop this?" + description: "you do not need to be a pro - this is just as a information for us" + options: + - label: "I want to develop this." + required: false diff --git a/.github/workflows/check_translations.yaml b/.github/workflows/check_translations.yaml index eb02ceff09..e4f318948c 100644 --- a/.github/workflows/check_translations.yaml +++ b/.github/workflows/check_translations.yaml @@ -21,10 +21,9 @@ jobs: INVENTREE_MEDIA_ROOT: ./media INVENTREE_STATIC_ROOT: ./static - steps: - name: Checkout Code - uses: actions/checkout@v2 + uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # pin@v2 - name: Install Dependencies run: | sudo apt-get update diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index d94ab3b876..a8442b2c26 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -15,7 +15,7 @@ name: Docker on: release: - types: [published] + types: [ published ] push: branches: @@ -33,7 +33,7 @@ jobs: steps: - name: Check out repo - uses: actions/checkout@v2 + uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # pin@v2 - name: Version Check run: | pip install requests @@ -66,30 +66,30 @@ jobs: test -f data/secret_key.txt - name: Set up QEMU if: github.event_name != 'pull_request' - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@27d0a4f181a40b142cce983c5393082c365d1480 # pin@v1 - name: Set up Docker Buildx if: github.event_name != 'pull_request' - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@f211e3e9ded2d9377c8cadc4489a4e38014bc4c9 # pin@v1 - name: Set up cosign if: github.event_name != 'pull_request' - uses: sigstore/cosign-installer@48866aa521d8bf870604709cd43ec2f602d03ff2 + uses: sigstore/cosign-installer@09a077b27eb1310dcfb21981bee195b30ce09de0 # pin@v2.5.0 - name: Login to Dockerhub if: github.event_name != 'pull_request' - uses: docker/login-action@v1 + uses: docker/login-action@dd4fa0671be5250ee6f50aedf4cb05514abda2c7 # pin@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract Docker metadata if: github.event_name != 'pull_request' id: meta - uses: docker/metadata-action@69f6fc9d46f2f8bf0d5491e4aabe0bb8c6a4678a + uses: docker/metadata-action@69f6fc9d46f2f8bf0d5491e4aabe0bb8c6a4678a # pin@v4.0.1 with: images: | inventree/inventree - name: Build and Push id: build-and-push if: github.event_name != 'pull_request' - uses: docker/build-push-action@v2 + uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a # pin@v2 with: context: . platforms: linux/amd64,linux/arm64,linux/arm/v7 @@ -103,11 +103,5 @@ jobs: if: github.event_name != 'pull_request' env: COSIGN_EXPERIMENTAL: "true" - run: cosign sign ${{ steps.meta.outputs.tags }}@${{ steps.build-and-push.outputs.digest }} - - name: Push to Stable Branch - uses: ad-m/github-push-action@master - if: env.stable_release == 'true' && github.event_name != 'pull_request' - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: stable - force: true + run: cosign sign ${{ steps.meta.outputs.tags }}@${{ + steps.build-and-push.outputs.digest }} diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml index 64261f5b6a..6b8c1b5473 100644 --- a/.github/workflows/qc_checks.yaml +++ b/.github/workflows/qc_checks.yaml @@ -15,7 +15,6 @@ env: python_version: 3.9 node_version: 16 # The OS version must be set per job - server_start_sleep: 60 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -30,7 +29,7 @@ jobs: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # pin@v1 - name: Enviroment Setup uses: ./.github/actions/setup with: @@ -45,7 +44,7 @@ jobs: needs: pep_style steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # pin@v1 - name: Enviroment Setup uses: ./.github/actions/setup with: @@ -67,7 +66,7 @@ jobs: needs: pep_style steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # pin@v1 - name: Enviroment Setup uses: ./.github/actions/setup with: @@ -83,18 +82,18 @@ jobs: needs: pep_style steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ env.python_version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ env.python_version }} - cache: 'pip' - - name: Run pre-commit Checks - uses: pre-commit/action@v2.0.3 - - name: Check Version - run: | - pip install requests - python3 ci/version_check.py + - uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # pin@v2 + - name: Set up Python ${{ env.python_version }} + uses: actions/setup-python@7f80679172b057fc5e90d70d197929d454754a5a # pin@v2 + with: + python-version: ${{ env.python_version }} + cache: 'pip' + - name: Run pre-commit Checks + uses: pre-commit/action@9b88afc9cd57fd75b655d5c71bd38146d07135fe # pin@v2.0.3 + - name: Check Version + run: | + pip install requests + python3 ci/version_check.py python: name: Tests - inventree-python @@ -114,7 +113,7 @@ jobs: INVENTREE_PYTHON_TEST_PASSWORD: testpassword steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # pin@v1 - name: Enviroment Setup uses: ./.github/actions/setup with: @@ -122,7 +121,8 @@ jobs: dev-install: true update: true - name: Download Python Code For `${{ env.wrapper_name }}` - run: git clone --depth 1 https://github.com/inventree/${{ env.wrapper_name }} ./${{ env.wrapper_name }} + run: git clone --depth 1 https://github.com/inventree/${{ env.wrapper_name }} + ./${{ env.wrapper_name }} - name: Start InvenTree Server run: | invoke delete-data -f @@ -143,7 +143,7 @@ jobs: continue-on-error: true steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # pin@v1 - name: Enviroment Setup uses: ./.github/actions/setup with: @@ -155,8 +155,8 @@ jobs: name: Tests - DB [SQLite] + Coverage runs-on: ubuntu-20.04 - needs: ['javascript', 'html', 'pre-commit'] - continue-on-error: true # continue if a step fails so that coverage gets pushed + needs: [ 'javascript', 'html', 'pre-commit' ] + continue-on-error: true # continue if a step fails so that coverage gets pushed env: INVENTREE_DB_NAME: ./inventree.sqlite @@ -164,7 +164,7 @@ jobs: INVENTREE_PLUGINS_ENABLED: true steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # pin@v1 - name: Enviroment Setup uses: ./.github/actions/setup with: @@ -185,9 +185,7 @@ jobs: postgres: name: Tests - DB [PostgreSQL] runs-on: ubuntu-20.04 - - needs: ['javascript', 'html', 'pre-commit'] - if: github.event_name == 'push' + needs: [ 'javascript', 'html', 'pre-commit' ] env: INVENTREE_DB_ENGINE: django.db.backends.postgresql @@ -214,7 +212,7 @@ jobs: - 6379:6379 steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # pin@v1 - name: Enviroment Setup uses: ./.github/actions/setup with: @@ -231,7 +229,7 @@ jobs: name: Tests - DB [MySQL] runs-on: ubuntu-20.04 - needs: ['javascript', 'html', 'pre-commit'] + needs: [ 'javascript', 'html', 'pre-commit' ] if: github.event_name == 'push' env: @@ -253,12 +251,13 @@ jobs: MYSQL_USER: inventree MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: password - options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 + options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s + --health-retries=3 ports: - 3306:3306 steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # pin@v1 - name: Enviroment Setup uses: ./.github/actions/setup with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 49d858702a..adbb437889 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,15 +3,35 @@ name: Publish release notes on: release: - types: [published] + types: [ published ] jobs: + + stable: + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # pin@v2 + - name: Version Check + run: | + pip install requests + python3 ci/version_check.py + - name: Push to Stable Branch + uses: ad-m/github-push-action@9a46ba8d86d3171233e861a4351b1278a2805c83 # pin@master + if: env.stable_release == 'true' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: stable + force: true + tweet: runs-on: ubuntu-latest steps: - - uses: Eomm/why-don-t-you-tweet@v1 + - uses: Eomm/why-don-t-you-tweet@f61f2a86c30c46528c1398a1abb1f64aa0988f69 # pin@v1 with: - tweet-message: "InvenTree release ${{ github.event.release.tag_name }} is out now! Release notes: ${{ github.event.release.html_url }} #opensource #inventree" + tweet-message: "InvenTree release ${{ github.event.release.tag_name }} is out + now! Release notes: ${{ github.event.release.html_url }} #opensource + #inventree" env: TWITTER_CONSUMER_API_KEY: ${{ secrets.TWITTER_CONSUMER_API_KEY }} TWITTER_CONSUMER_API_SECRET: ${{ secrets.TWITTER_CONSUMER_API_SECRET }} @@ -19,14 +39,14 @@ jobs: TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} reddit: - runs-on: ubuntu-latest - steps: - - uses: bluwy/release-for-reddit-action@v1 - with: - username: ${{ secrets.REDDIT_USERNAME }} - password: ${{ secrets.REDDIT_PASSWORD }} - app-id: ${{ secrets.REDDIT_APP_ID }} - app-secret: ${{ secrets.REDDIT_APP_SECRET }} - subreddit: InvenTree - title: "InvenTree version ${{ github.event.release.tag_name }} released" - comment: "${{ github.event.release.body }}" + runs-on: ubuntu-latest + steps: + - uses: bluwy/release-for-reddit-action@4d948192aff856da22f19f9806b00b46ca384547 # pin@v1 + with: + username: ${{ secrets.REDDIT_USERNAME }} + password: ${{ secrets.REDDIT_PASSWORD }} + app-id: ${{ secrets.REDDIT_APP_ID }} + app-secret: ${{ secrets.REDDIT_APP_SECRET }} + subreddit: InvenTree + title: "InvenTree version ${{ github.event.release.tag_name }} released" + comment: "${{ github.event.release.body }}" diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 4f21c1e8be..1e5137b7e7 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,7 +3,7 @@ name: Mark stale issues and pull requests on: schedule: - - cron: '24 11 * * *' + - cron: '24 11 * * *' jobs: stale: @@ -14,12 +14,13 @@ jobs: pull-requests: write steps: - - uses: actions/stale@v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: 'This issue seems stale. Please react to show this is still important.' - stale-pr-message: 'This PR seems stale. Please react to show this is still important.' - stale-issue-label: 'inactive' - stale-pr-label: 'inactive' - start-date: '2022-01-01' - exempt-all-milestones: true + - uses: actions/stale@98ed4cb500039dbcccf4bd9bedada4d0187f2757 # pin@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: 'This issue seems stale. Please react to show this is still + important.' + stale-pr-message: 'This PR seems stale. Please react to show this is still important.' + stale-issue-label: 'inactive' + stale-pr-label: 'inactive' + start-date: '2022-01-01' + exempt-all-milestones: true diff --git a/.github/workflows/translations.yml b/.github/workflows/translations.yml index 59f9b3cba9..eec0b8e49a 100644 --- a/.github/workflows/translations.yml +++ b/.github/workflows/translations.yml @@ -20,17 +20,17 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@v2 + uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # pin@v2 - name: Set up Python 3.9 - uses: actions/setup-python@v1 + uses: actions/setup-python@152ba7c4dd6521b8e9c93f72d362ce03bf6c4f20 # pin@v1 with: python-version: 3.9 - name: Install Dependencies run: | - sudo apt-get update - sudo apt-get install -y gettext - pip3 install invoke - invoke install + sudo apt-get update + sudo apt-get install -y gettext + pip3 install invoke + invoke install - name: Make Translations run: | invoke translate @@ -42,7 +42,7 @@ jobs: git add "*.po" git commit -m "updated translation base" - name: Push changes - uses: ad-m/github-push-action@master + uses: ad-m/github-push-action@9a46ba8d86d3171233e861a4351b1278a2805c83 # pin@master with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: l10 diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 55c38068a8..e6320ab732 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -1,7 +1,7 @@ name: Update dependency files regularly on: - workflow_dispatch: + workflow_dispatch: null schedule: - cron: "0 0 * * *" @@ -9,14 +9,15 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # pin@v2 - name: Setup run: pip install -r requirements-dev.txt - name: Update requirements.txt run: pip-compile --output-file=requirements.txt requirements.in -U - name: Update requirements-dev.txt - run: pip-compile --generate-hashes --output-file=requirements-dev.txt requirements-dev.in -U - - uses: stefanzweifel/git-auto-commit-action@v4 + run: pip-compile --generate-hashes --output-file=requirements-dev.txt + requirements-dev.in -U + - uses: stefanzweifel/git-auto-commit-action@49620cd3ed21ee620a48530e81dba0d139c9cb80 # pin@v4 with: commit_message: "[Bot] Updated dependency" branch: dep-update diff --git a/.github/workflows/welcome.yml b/.github/workflows/welcome.yml index 5be20aefe7..a6eaa45ee4 100644 --- a/.github/workflows/welcome.yml +++ b/.github/workflows/welcome.yml @@ -2,9 +2,9 @@ name: Welcome on: pull_request: - types: [opened] + types: [ opened ] issues: - types: [opened] + types: [ opened ] jobs: run: @@ -13,13 +13,13 @@ jobs: pull-requests: write steps: - - uses: actions/first-interaction@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - issue-message: | - Welcome to InvenTree! Please check the [contributing docs](https://inventree.readthedocs.io/en/latest/contribute/) on how to help. - If you experience setup / install issues please read all [install docs]( https://inventree.readthedocs.io/en/latest/start/intro/). - pr-message: | - This is your first PR, welcome! - Please check [Contributing](https://github.com/inventree/InvenTree/blob/master/CONTRIBUTING.md) to make sure your submission fits our general code-style and workflow. - Make sure to document why this PR is needed and to link connected issues so we can review it faster. + - uses: actions/first-interaction@bd33205aa5c96838e10fd65df0d01efd613677c1 # pin@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + issue-message: | + Welcome to InvenTree! Please check the [contributing docs](https://inventree.readthedocs.io/en/latest/contribute/) on how to help. + If you experience setup / install issues please read all [install docs]( https://inventree.readthedocs.io/en/latest/start/intro/). + pr-message: | + This is your first PR, welcome! + Please check [Contributing](https://github.com/inventree/InvenTree/blob/master/CONTRIBUTING.md) to make sure your submission fits our general code-style and workflow. + Make sure to document why this PR is needed and to link connected issues so we can review it faster. diff --git a/.gitignore b/.gitignore index 693ed10362..be9c91ecb9 100644 --- a/.gitignore +++ b/.gitignore @@ -66,9 +66,16 @@ secret_key.txt # IDE / development files .idea/ *.code-workspace -.vscode/ .bash_history +# https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore +.vscode/* +#!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +#!.vscode/extensions.json +#!.vscode/*.code-snippets + # Coverage reports .coverage htmlcov/ diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000..55aa17b353 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,26 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "InvenTree Server", + "type": "python", + "request": "launch", + "program": "${workspaceFolder}/InvenTree/manage.py", + "args": ["runserver"], + "django": true, + "justMyCode": true + }, + { + "name": "Python: Django - 3rd party", + "type": "python", + "request": "launch", + "program": "${workspaceFolder}/InvenTree/manage.py", + "args": ["runserver"], + "django": true, + "justMyCode": false + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000000..951e2af546 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,52 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "clean-settings", + "type": "shell", + "command": "inv clean-settings", + }, + { + "label": "delete-data", + "type": "shell", + "command": "inv delete-data", + }, + { + "label": "migrate", + "type": "shell", + "command": "inv migrate", + }, + { + "label": "server", + "type": "shell", + "command": "inv server", + }, + { + "label": "setup-dev", + "type": "shell", + "command": "inv setup-dev", + }, + { + "label": "setup-test", + "type": "shell", + "command": "inv setup-test --path dev/inventree-demo-dataset", + }, + { + "label": "superuser", + "type": "shell", + "command": "inv superuser", + }, + { + "label": "test", + "type": "shell", + "command": "inv test", + }, + { + "label": "update", + "type": "shell", + "command": "inv update", + }, + ] +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c736418892..bbcdfd703d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -147,7 +147,7 @@ Any user-facing strings *must* be passed through the translation engine. For strings exposed via Python code, use the following format: ```python -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ user_facing_string = _('This string will be exposed to the translation engine!') ``` @@ -167,6 +167,9 @@ HTML and javascript files are passed through the django templating engine. Trans The tags describe issues and PRs in multiple areas: | Area | Name | Description | |---|---|---| +| Triage Labels | | | +| | triage:not-checked | Item was not checked by the core team | +| | triage:not-approved | Item is not green-light by maintainer | | Type Labels | | | | | breaking | Indicates a major update or change which breaks compatibility | | | bug | Identifies a bug which needs to be addressed | diff --git a/InvenTree/InvenTree/api.py b/InvenTree/InvenTree/api.py index ff2a489c5f..8aa15be33c 100644 --- a/InvenTree/InvenTree/api.py +++ b/InvenTree/InvenTree/api.py @@ -12,6 +12,7 @@ from rest_framework.serializers import ValidationError from InvenTree.mixins import ListCreateAPI from InvenTree.permissions import RolePermission +from part.templatetags.inventree_extras import plugins_info from .status import is_worker_running from .version import (inventreeApiVersion, inventreeInstanceName, @@ -36,6 +37,7 @@ class InfoView(AjaxView): 'apiVersion': inventreeApiVersion(), 'worker_running': is_worker_running(), 'plugins_enabled': settings.PLUGINS_ENABLED, + 'active_plugins': plugins_info(), } return JsonResponse(data) diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py index f68a04cfa3..670203e2a9 100644 --- a/InvenTree/InvenTree/api_version.py +++ b/InvenTree/InvenTree/api_version.py @@ -2,11 +2,24 @@ # InvenTree API version -INVENTREE_API_VERSION = 70 +INVENTREE_API_VERSION = 74 """ Increment this API version number whenever there is a significant change to the API that any clients need to know about +v74 -> 2022-08-28 : https://github.com/inventree/InvenTree/pull/3615 + - Add confirmation field for completing PurchaseOrder if the order has incomplete lines + - Add confirmation field for completing SalesOrder if the order has incomplete lines + +v73 -> 2022-08-24 : https://github.com/inventree/InvenTree/pull/3605 + - Add 'description' field to PartParameterTemplate model + +v72 -> 2022-08-18 : https://github.com/inventree/InvenTree/pull/3567 + - Allow PurchaseOrder to be duplicated via the API + +v71 -> 2022-08-18 : https://github.com/inventree/InvenTree/pull/3564 + - Updates to the "part scheduling" API endpoint + v70 -> 2022-08-02 : https://github.com/inventree/InvenTree/pull/3451 - Adds a 'depth' parameter to the PartCategory list API - Adds a 'depth' parameter to the StockLocation list API diff --git a/InvenTree/InvenTree/config.py b/InvenTree/InvenTree/config.py index 799788a0da..7ce162bdff 100644 --- a/InvenTree/InvenTree/config.py +++ b/InvenTree/InvenTree/config.py @@ -203,3 +203,30 @@ def get_secret_key(): key_data = secret_key_file.read_text().strip() return key_data + + +def get_custom_file(env_ref: str, conf_ref: str, log_ref: str, lookup_media: bool = False): + """Returns the checked path to a custom file. + + Set lookup_media to True to also search in the media folder. + """ + from django.contrib.staticfiles.storage import StaticFilesStorage + from django.core.files.storage import default_storage + + value = get_setting(env_ref, conf_ref, None) + + if not value: + return None + + static_storage = StaticFilesStorage() + + if static_storage.exists(value): + logger.info(f"Loading {log_ref} from static directory: {value}") + elif lookup_media and default_storage.exists(value): + logger.info(f"Loading {log_ref} from media directory: {value}") + else: + add_dir_str = ' or media' if lookup_media else '' + logger.warning(f"The {log_ref} file '{value}' could not be found in the static{add_dir_str} directories") + value = False + + return value diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py index 51dc08bd47..fcbe9f4c0e 100644 --- a/InvenTree/InvenTree/helpers.py +++ b/InvenTree/InvenTree/helpers.py @@ -20,7 +20,9 @@ from django.http import StreamingHttpResponse from django.test import TestCase from django.utils.translation import gettext_lazy as _ +import regex import requests +from bleach import clean from djmoney.money import Money from PIL import Image @@ -265,6 +267,20 @@ def getLogoImage(as_file=False, custom=True): return getStaticUrl('img/inventree.png') +def getSplashScren(custom=True): + """Return the InvenTree splash screen, or a custom splash if available""" + + static_storage = StaticFilesStorage() + + if custom and settings.CUSTOM_SPLASH: + + if static_storage.exists(settings.CUSTOM_SPLASH): + return static_storage.url(settings.CUSTOM_SPLASH) + + # No custom splash screen + return static_storage.url("img/inventree_splash.jpg") + + def TestIfImageURL(url): """Test if an image URL (or filename) looks like a valid image format. @@ -842,6 +858,55 @@ def clean_decimal(number): return clean_number.quantize(Decimal(1)) if clean_number == clean_number.to_integral() else clean_number.normalize() +def strip_html_tags(value: str, raise_error=True, field_name=None): + """Strip HTML tags from an input string using the bleach library. + + If raise_error is True, a ValidationError will be thrown if HTML tags are detected + """ + + cleaned = clean( + value, + strip=True, + tags=[], + attributes=[], + ) + + # Add escaped characters back in + replacements = { + '>': '>', + '<': '<', + '&': '&', + } + + for o, r in replacements.items(): + cleaned = cleaned.replace(o, r) + + # If the length changed, it means that HTML tags were removed! + if len(cleaned) != len(value) and raise_error: + + field = field_name or 'non_field_errors' + + raise ValidationError({ + field: [_("Remove HTML tags from this value")] + }) + + return cleaned + + +def remove_non_printable_characters(value: str, remove_ascii=True, remove_unicode=True): + """Remove non-printable / control characters from the provided string""" + + if remove_ascii: + # Remove ASCII control characters + cleaned = regex.sub(u'[\x01-\x1F]+', '', value) + + if remove_unicode: + # Remove Unicode control characters + cleaned = regex.sub(u'[^\P{C}]+', '', value) + + return cleaned + + def get_objectreference(obj, type_ref: str = 'content_type', object_ref: str = 'object_id'): """Lookup method for the GenericForeignKey fields. diff --git a/InvenTree/InvenTree/middleware.py b/InvenTree/InvenTree/middleware.py index 951d415c16..dcbf76f32f 100644 --- a/InvenTree/InvenTree/middleware.py +++ b/InvenTree/InvenTree/middleware.py @@ -7,7 +7,7 @@ from django.conf import settings from django.contrib.auth.middleware import PersistentRemoteUserMiddleware from django.http import HttpResponse from django.shortcuts import redirect -from django.urls import Resolver404, include, re_path, reverse_lazy +from django.urls import Resolver404, include, re_path, resolve, reverse_lazy from allauth_2fa.middleware import (AllauthTwoFactorMiddleware, BaseRequire2FAMiddleware) @@ -41,6 +41,11 @@ class AuthRequiredMiddleware(object): if request.path_info.startswith('/api/'): return self.get_response(request) + # Is the function exempt from auth requirements? + path_func = resolve(request.path).func + if getattr(path_func, 'auth_exempt', False) is True: + return self.get_response(request) + if not request.user.is_authenticated: """ Normally, a web-based session would use csrftoken based authentication. diff --git a/InvenTree/InvenTree/mixins.py b/InvenTree/InvenTree/mixins.py index 584b3ac5ed..5d81c26cb2 100644 --- a/InvenTree/InvenTree/mixins.py +++ b/InvenTree/InvenTree/mixins.py @@ -1,15 +1,16 @@ """Mixins for (API) views in the whole project.""" -from bleach import clean from rest_framework import generics, status from rest_framework.response import Response +from InvenTree.helpers import remove_non_printable_characters, strip_html_tags + class CleanMixin(): - """Model mixin class which cleans inputs.""" + """Model mixin class which cleans inputs using the Mozilla bleach tools.""" - # Define a map of fields avaialble for import - SAFE_FIELDS = {} + # Define a list of field names which will *not* be cleaned + SAFE_FIELDS = [] def create(self, request, *args, **kwargs): """Override to clean data before processing it.""" @@ -34,6 +35,22 @@ class CleanMixin(): return Response(serializer.data) + def clean_string(self, field: str, data: str) -> str: + """Clean / sanitize a single input string. + + Note that this function will *allow* orphaned <>& characters, + which would normally be escaped by bleach. + + Nominally, the only thing that will be "cleaned" will be HTML tags + + Ref: https://github.com/mozilla/bleach/issues/192 + """ + + cleaned = strip_html_tags(data, field_name=field) + cleaned = remove_non_printable_characters(cleaned) + + return cleaned + def clean_data(self, data: dict) -> dict: """Clean / sanitize data. @@ -46,17 +63,24 @@ class CleanMixin(): data (dict): Data that should be sanatized. Returns: - dict: Profided data sanatized; still in the same order. + dict: Provided data sanatized; still in the same order. """ + clean_data = {} + for k, v in data.items(): - if isinstance(v, str): - ret = clean(v) + + if k in self.SAFE_FIELDS: + ret = v + elif isinstance(v, str): + ret = self.clean_string(k, v) elif isinstance(v, dict): ret = self.clean_data(v) else: ret = v + clean_data[k] = ret + return clean_data diff --git a/InvenTree/InvenTree/permissions.py b/InvenTree/InvenTree/permissions.py index 7f607f6dbf..74d42b6da0 100644 --- a/InvenTree/InvenTree/permissions.py +++ b/InvenTree/InvenTree/permissions.py @@ -1,5 +1,7 @@ """Permission set for InvenTree.""" +from functools import wraps + from rest_framework import permissions import users.models @@ -63,3 +65,11 @@ class RolePermission(permissions.BasePermission): result = users.models.RuleSet.check_table_permission(user, table, permission) return result + + +def auth_exempt(view_func): + """Mark a view function as being exempt from auth requirements.""" + def wrapped_view(*args, **kwargs): + return view_func(*args, **kwargs) + wrapped_view.auth_exempt = True + return wraps(view_func)(wrapped_view) diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 3e2c907c22..210024049d 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -16,8 +16,6 @@ import sys from pathlib import Path import django.conf.locale -from django.contrib.staticfiles.storage import StaticFilesStorage -from django.core.files.storage import default_storage from django.http import Http404 from django.utils.translation import gettext_lazy as _ @@ -26,7 +24,7 @@ import sentry_sdk from sentry_sdk.integrations.django import DjangoIntegration from . import config -from .config import get_boolean_setting, get_setting +from .config import get_boolean_setting, get_custom_file, get_setting # Determine if we are running in "test" mode e.g. "manage.py test" TESTING = 'test' in sys.argv @@ -678,7 +676,7 @@ EMAIL_SUBJECT_PREFIX = get_setting('INVENTREE_EMAIL_PREFIX', 'email.prefix', '[I EMAIL_USE_TLS = get_boolean_setting('INVENTREE_EMAIL_TLS', 'email.tls', False) EMAIL_USE_SSL = get_boolean_setting('INVENTREE_EMAIL_SSL', 'email.ssl', False) -DEFUALT_FROM_EMAIL = get_setting('INVENTREE_EMAIL_SENDER', 'email.sender', '') +DEFAULT_FROM_EMAIL = get_setting('INVENTREE_EMAIL_SENDER', 'email.sender', '') EMAIL_USE_LOCALTIME = False EMAIL_TIMEOUT = 60 @@ -818,29 +816,13 @@ PLUGIN_RETRY = CONFIG.get('PLUGIN_RETRY', 5) # how often should plugin loading PLUGIN_FILE_CHECKED = False # Was the plugin file checked? # User interface customization values +CUSTOM_LOGO = get_custom_file('INVENTREE_CUSTOM_LOGO', 'customize.logo', 'custom logo', lookup_media=True) +CUSTOM_SPLASH = get_custom_file('INVENTREE_CUSTOM_SPLASH', 'customize.splash', 'custom splash') + CUSTOMIZE = get_setting('INVENTREE_CUSTOMIZE', 'customize', {}) -CUSTOM_LOGO = get_setting('INVENTREE_CUSTOM_LOGO', 'customize.logo', None) - -""" -Check for the existence of a 'custom logo' file: -- Check the 'static' directory -- Check the 'media' directory (legacy) -""" - -if CUSTOM_LOGO: - static_storage = StaticFilesStorage() - - if static_storage.exists(CUSTOM_LOGO): - logger.info(f"Loading custom logo from static directory: {CUSTOM_LOGO}") - elif default_storage.exists(CUSTOM_LOGO): - logger.info(f"Loading custom logo from media directory: {CUSTOM_LOGO}") - else: - logger.warning(f"The custom logo file '{CUSTOM_LOGO}' could not be found in the static or media directories") - CUSTOM_LOGO = False - if DEBUG: logger.info("InvenTree running with DEBUG enabled") -logger.debug(f"MEDIA_ROOT: '{MEDIA_ROOT}'") -logger.debug(f"STATIC_ROOT: '{STATIC_ROOT}'") +logger.info(f"MEDIA_ROOT: '{MEDIA_ROOT}'") +logger.info(f"STATIC_ROOT: '{STATIC_ROOT}'") diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index 96409dc9a1..c6dded3071 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -19,8 +19,8 @@ main { } .login-screen { - background: url(/static/img/paper_splash.jpg) no-repeat center fixed; background-size: cover; + background-position: center; height: 100vh; font-family: 'Numans', sans-serif; color: #eee; @@ -1028,3 +1028,8 @@ a { margin-top: 3px; overflow: hidden; } + +.treeview .node-icon { + margin-left: 0.25rem; + margin-right: 0.25rem; +} diff --git a/InvenTree/InvenTree/static/img/paper_splash.jpg b/InvenTree/InvenTree/static/img/inventree_splash.jpg similarity index 100% rename from InvenTree/InvenTree/static/img/paper_splash.jpg rename to InvenTree/InvenTree/static/img/inventree_splash.jpg diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py index ecb6085cb7..3c410bd1ca 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -38,6 +38,7 @@ from part.models import PartCategory from users.models import RuleSet, check_user_role from .forms import EditUserForm, SetPasswordForm +from .helpers import remove_non_printable_characters, strip_html_tags def auth_request(request): @@ -600,6 +601,9 @@ class SearchView(TemplateView): query = request.POST.get('search', '') + query = strip_html_tags(query, raise_error=False) + query = remove_non_printable_characters(query) + context['query'] = query return super(TemplateView, self).render_to_response(context) diff --git a/InvenTree/build/api.py b/InvenTree/build/api.py index 3102850d4e..71b806314f 100644 --- a/InvenTree/build/api.py +++ b/InvenTree/build/api.py @@ -100,6 +100,8 @@ class BuildList(APIDownloadMixin, ListCreateAPI): 'reference': ['reference_int', 'reference'], } + ordering = '-reference' + search_fields = [ 'reference', 'title', @@ -365,6 +367,7 @@ class BuildItemList(ListCreateAPI): kwargs['part_detail'] = str2bool(params.get('part_detail', False)) kwargs['build_detail'] = str2bool(params.get('build_detail', False)) kwargs['location_detail'] = str2bool(params.get('location_detail', False)) + kwargs['stock_detail'] = str2bool(params.get('stock_detail', True)) except AttributeError: pass @@ -372,13 +375,19 @@ class BuildItemList(ListCreateAPI): def get_queryset(self): """Override the queryset method, to allow filtering by stock_item.part.""" - query = BuildItem.objects.all() + queryset = BuildItem.objects.all() - query = query.select_related('stock_item__location') - query = query.select_related('stock_item__part') - query = query.select_related('stock_item__part__category') + queryset = queryset.select_related( + 'bom_item', + 'bom_item__sub_part', + 'build', + 'install_into', + 'stock_item', + 'stock_item__location', + 'stock_item__part', + ) - return query + return queryset def filter_queryset(self, queryset): """Customm query filtering for the BuildItem list.""" diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index c71defc40c..07bcaf4514 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -674,28 +674,26 @@ class Build(MPTTModel, ReferenceIndexingMixin): parts = bom_item.get_valid_parts_for_allocation() - for part in parts: + items = StockModels.StockItem.objects.filter( + part__in=parts, + serial=str(serial), + quantity=1, + ).filter(StockModels.StockItem.IN_STOCK_FILTER) - items = StockModels.StockItem.objects.filter( - part=part, - serial=str(serial), + """ + Test if there is a matching serial number! + """ + if items.exists() and items.count() == 1: + stock_item = items[0] + + # Allocate the stock item + BuildItem.objects.create( + build=self, + bom_item=bom_item, + stock_item=stock_item, quantity=1, - ).filter(StockModels.StockItem.IN_STOCK_FILTER) - - """ - Test if there is a matching serial number! - """ - if items.exists() and items.count() == 1: - stock_item = items[0] - - # Allocate the stock item - BuildItem.objects.create( - build=self, - bom_item=bom_item, - stock_item=stock_item, - quantity=1, - install_into=output, - ) + install_into=output, + ) else: """Create a single build output of the given quantity.""" @@ -736,6 +734,34 @@ class Build(MPTTModel, ReferenceIndexingMixin): # Remove the build output from the database output.delete() + @transaction.atomic + def trim_allocated_stock(self): + """Called after save to reduce allocated stock if the build order is now overallocated.""" + allocations = BuildItem.objects.filter(build=self) + + # Only need to worry about untracked stock here + for bom_item in self.untracked_bom_items: + reduce_by = self.allocated_quantity(bom_item) - self.required_quantity(bom_item) + if reduce_by <= 0: + continue # all OK + + # find builditem(s) to trim + for a in allocations.filter(bom_item=bom_item): + # Previous item completed the job + if reduce_by == 0: + break + + # Easy case - this item can just be reduced. + if a.quantity > reduce_by: + a.quantity -= reduce_by + a.save() + break + + # Harder case, this item needs to be deleted, and any remainder + # taken from the next items in the list. + reduce_by -= a.quantity + a.delete() + @transaction.atomic def subtract_allocated_stock(self, user): """Called when the Build is marked as "complete", this function removes the allocated untracked items from stock.""" diff --git a/InvenTree/build/serializers.py b/InvenTree/build/serializers.py index 74fdf599ee..19371d4fba 100644 --- a/InvenTree/build/serializers.py +++ b/InvenTree/build/serializers.py @@ -473,21 +473,36 @@ class BuildCancelSerializer(serializers.Serializer): ) +class OverallocationChoice(): + """Utility class to contain options for handling over allocated stock items.""" + + REJECT = 'reject' + ACCEPT = 'accept' + TRIM = 'trim' + + OPTIONS = { + REJECT: ('Not permitted'), + ACCEPT: _('Accept as consumed by this build order'), + TRIM: _('Deallocate before completing this build order'), + } + + class BuildCompleteSerializer(serializers.Serializer): """DRF serializer for marking a BuildOrder as complete.""" - accept_overallocated = serializers.BooleanField( - label=_('Accept Overallocated'), - help_text=_('Accept stock items which have been overallocated to this build order'), + accept_overallocated = serializers.ChoiceField( + label=_('Overallocated Stock'), + choices=list(OverallocationChoice.OPTIONS.items()), + help_text=_('How do you want to handle extra stock items assigned to the build order'), required=False, - default=False, + default=OverallocationChoice.REJECT, ) def validate_accept_overallocated(self, value): """Check if the 'accept_overallocated' field is required""" build = self.context['build'] - if build.has_overallocated_parts(output=None) and not value: + if build.has_overallocated_parts(output=None) and value == OverallocationChoice.REJECT: raise ValidationError(_('Some stock items have been overallocated')) return value @@ -531,9 +546,6 @@ class BuildCompleteSerializer(serializers.Serializer): if build.incomplete_count > 0: raise ValidationError(_("Build order has incomplete outputs")) - if not build.has_build_outputs(): - raise ValidationError(_("No build outputs have been created for this build order")) - return data def save(self): @@ -541,6 +553,10 @@ class BuildCompleteSerializer(serializers.Serializer): request = self.context['request'] build = self.context['build'] + data = self.validated_data + if data.get('accept_overallocated', OverallocationChoice.REJECT) == OverallocationChoice.TRIM: + build.trim_allocated_stock() + build.complete_build(request.user) @@ -840,6 +856,7 @@ class BuildItemSerializer(InvenTreeModelSerializer): build_detail = kwargs.pop('build_detail', False) part_detail = kwargs.pop('part_detail', False) location_detail = kwargs.pop('location_detail', False) + stock_detail = kwargs.pop('stock_detail', False) super().__init__(*args, **kwargs) @@ -852,6 +869,9 @@ class BuildItemSerializer(InvenTreeModelSerializer): if not location_detail: self.fields.pop('location_detail') + if not stock_detail: + self.fields.pop('stock_item_detail') + class Meta: """Serializer metaclass""" model = BuildItem diff --git a/InvenTree/build/templates/build/build_base.html b/InvenTree/build/templates/build/build_base.html index 19dc2daeee..2f3e339b7d 100644 --- a/InvenTree/build/templates/build/build_base.html +++ b/InvenTree/build/templates/build/build_base.html @@ -55,6 +55,9 @@ src="{% static 'img/blank_image.png' %}" {% if build.is_active %}
  • {% trans "Cancel Build" %}
  • {% endif %} + {% if roles.build.add %} +
  • {% trans "Duplicate Build" %}
  • + {% endif %} {% if build.status == BuildStatus.CANCELLED and roles.build.delete %}
  • {% trans "Delete Build" %} {% endif %} @@ -209,6 +212,7 @@ src="{% static 'img/blank_image.png' %}" {% block js_ready %} + {% if roles.build.change %} $("#build-edit").click(function () { editBuildOrder({{ build.pk }}); }); @@ -224,24 +228,19 @@ src="{% static 'img/blank_image.png' %}" }); $("#build-complete").on('click', function() { - - {% if build.incomplete_count > 0 %} - showAlertDialog( - '{% trans "Incomplete Outputs" %}', - '{% trans "Build Order cannot be completed as incomplete build outputs remain" %}', - { - alert_style: 'danger', - } - ); - {% else %} - completeBuildOrder({{ build.pk }}, { overallocated: {% if build.has_overallocated_parts %}true{% else %}false{% endif %}, allocated: {% if build.are_untracked_parts_allocated %}true{% else %}false{% endif %}, completed: {% if build.remaining == 0 %}true{% else %}false{% endif %}, }); - {% endif %} }); + {% endif %} + + {% if roles.build.add %} + $('#build-duplicate').click(function() { + duplicateBuildOrder({{ build.pk }}); + }); + {% endif %} {% if report_enabled %} $('#print-build-report').click(function() { diff --git a/InvenTree/build/templates/build/detail.html b/InvenTree/build/templates/build/detail.html index 26040d0fc6..e6ba0bb60b 100644 --- a/InvenTree/build/templates/build/detail.html +++ b/InvenTree/build/templates/build/detail.html @@ -455,7 +455,9 @@ function loadUntrackedStockTable() { ); } -loadUntrackedStockTable(); +onPanelLoad('allocate', function() { + loadUntrackedStockTable(); +}); {% endif %} diff --git a/InvenTree/build/test_api.py b/InvenTree/build/test_api.py index 8af14ddb67..02304b0066 100644 --- a/InvenTree/build/test_api.py +++ b/InvenTree/build/test_api.py @@ -717,6 +717,105 @@ class BuildAllocationTest(BuildAPITest): self.assertEqual(allocation.stock_item.pk, 2) +class BuildOverallocationTest(BuildAPITest): + """Unit tests for over allocation of stock items against a build order. + + Using same Build ID=1 as allocation test above. + """ + + def setUp(self): + """Basic operation as part of test suite setup""" + super().setUp() + + self.assignRole('build.add') + self.assignRole('build.change') + + self.build = Build.objects.get(pk=1) + self.url = reverse('api-build-finish', kwargs={'pk': self.build.pk}) + + StockItem.objects.create(part=Part.objects.get(pk=50), quantity=30) + + # Keep some state for use in later assertions, and then overallocate + self.state = {} + self.allocation = {} + for i, bi in enumerate(self.build.part.bom_items.all()): + rq = self.build.required_quantity(bi, None) + i + 1 + si = StockItem.objects.filter(part=bi.sub_part, quantity__gte=rq).first() + + self.state[bi.sub_part] = (si, si.quantity, rq) + BuildItem.objects.create( + build=self.build, + stock_item=si, + quantity=rq, + ) + + # create and complete outputs + self.build.create_build_output(self.build.quantity) + outputs = self.build.build_outputs.all() + self.build.complete_build_output(outputs[0], self.user) + + # Validate expected state after set-up. + self.assertEqual(self.build.incomplete_outputs.count(), 0) + self.assertEqual(self.build.complete_outputs.count(), 1) + self.assertEqual(self.build.completed, self.build.quantity) + + def test_overallocated_requires_acceptance(self): + """Test build order cannot complete with overallocated items.""" + # Try to complete the build (it should fail due to overallocation) + response = self.post( + self.url, + {}, + expected_code=400 + ) + self.assertTrue('accept_overallocated' in response.data) + + # Check stock items have not reduced at all + for si, oq, _ in self.state.values(): + si.refresh_from_db() + self.assertEqual(si.quantity, oq) + + # Accept overallocated stock + self.post( + self.url, + { + 'accept_overallocated': 'accept', + }, + expected_code=201, + ) + + self.build.refresh_from_db() + + # Build should have been marked as complete + self.assertTrue(self.build.is_complete) + + # Check stock items have reduced in-line with the overallocation + for si, oq, rq in self.state.values(): + si.refresh_from_db() + self.assertEqual(si.quantity, oq - rq) + + def test_overallocated_can_trim(self): + """Test build order will trim/de-allocate overallocated stock when requested.""" + self.post( + self.url, + { + 'accept_overallocated': 'trim', + }, + expected_code=201, + ) + + self.build.refresh_from_db() + + # Build should have been marked as complete + self.assertTrue(self.build.is_complete) + + # Check stock items have reduced only by bom requirement (overallocation trimmed) + for bi in self.build.part.bom_items.all(): + si, oq, _ = self.state[bi.sub_part] + rq = self.build.required_quantity(bi, None) + si.refresh_from_db() + self.assertEqual(si.quantity, oq - rq) + + class BuildListTest(BuildAPITest): """Tests for the BuildOrder LIST API.""" diff --git a/InvenTree/build/test_build.py b/InvenTree/build/test_build.py index 79c7953c1d..23925eba17 100644 --- a/InvenTree/build/test_build.py +++ b/InvenTree/build/test_build.py @@ -7,6 +7,7 @@ from django.test import TestCase from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from django.core.exceptions import ValidationError +from django.db.models import Sum from InvenTree import status_codes as status @@ -17,6 +18,9 @@ from part.models import Part, BomItem, BomItemSubstitute from stock.models import StockItem from users.models import Owner +import logging +logger = logging.getLogger('inventree') + class BuildTestBase(TestCase): """Run some tests to ensure that the Build model is working properly.""" @@ -120,9 +124,9 @@ class BuildTestBase(TestCase): self.stock_2_1 = StockItem.objects.create(part=self.sub_part_2, quantity=5) self.stock_2_2 = StockItem.objects.create(part=self.sub_part_2, quantity=5) - self.stock_2_2 = StockItem.objects.create(part=self.sub_part_2, quantity=5) - self.stock_2_2 = StockItem.objects.create(part=self.sub_part_2, quantity=5) - self.stock_2_2 = StockItem.objects.create(part=self.sub_part_2, quantity=5) + self.stock_2_3 = StockItem.objects.create(part=self.sub_part_2, quantity=5) + self.stock_2_4 = StockItem.objects.create(part=self.sub_part_2, quantity=5) + self.stock_2_5 = StockItem.objects.create(part=self.sub_part_2, quantity=5) self.stock_3_1 = StockItem.objects.create(part=self.sub_part_3, quantity=1000) @@ -375,6 +379,65 @@ class BuildTest(BuildTestBase): self.assertTrue(self.build.are_untracked_parts_allocated()) + def test_overallocation_and_trim(self): + """Test overallocation of stock and trim function""" + + # Fully allocate tracked stock (not eligible for trimming) + self.allocate_stock( + self.output_1, + { + self.stock_3_1: 6, + } + ) + self.allocate_stock( + self.output_2, + { + self.stock_3_1: 14, + } + ) + # Fully allocate part 1 (should be left alone) + self.allocate_stock( + None, + { + self.stock_1_1: 3, + self.stock_1_2: 47, + } + ) + + extra_2_1 = StockItem.objects.create(part=self.sub_part_2, quantity=6) + extra_2_2 = StockItem.objects.create(part=self.sub_part_2, quantity=4) + + # Overallocate part 2 (30 needed) + self.allocate_stock( + None, + { + self.stock_2_1: 5, + self.stock_2_2: 5, + self.stock_2_3: 5, + self.stock_2_4: 5, + self.stock_2_5: 5, # 25 + extra_2_1: 6, # 31 + extra_2_2: 4, # 35 + } + ) + self.assertTrue(self.build.has_overallocated_parts(None)) + + self.build.trim_allocated_stock() + self.assertFalse(self.build.has_overallocated_parts(None)) + + self.build.complete_build_output(self.output_1, None) + self.build.complete_build_output(self.output_2, None) + self.assertTrue(self.build.can_complete) + + self.build.complete_build(None) + + self.assertEqual(self.build.status, status.BuildStatus.COMPLETE) + + # Check stock items are in expected state. + self.assertEqual(StockItem.objects.get(pk=self.stock_1_2.pk).quantity, 53) + self.assertEqual(StockItem.objects.filter(part=self.sub_part_2).aggregate(Sum('quantity'))['quantity__sum'], 5) + self.assertEqual(StockItem.objects.get(pk=self.stock_3_1.pk).quantity, 980) + def test_cancel(self): """Test cancellation of the build""" diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index a006dab47b..e09a08a0bb 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -131,7 +131,7 @@ class BaseInvenTreeSetting(models.Model): for k, v in kwargs.items(): key += f"_{k}:{v}" - return key + return key.replace(" ", "") @classmethod def allValues(cls, user=None, exclude_hidden=False): @@ -1070,6 +1070,12 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'validator': InvenTree.validators.validate_part_name_format }, + 'PART_CATEGORY_DEFAULT_ICON': { + 'name': _('Part Category Default Icon'), + 'description': _('Part category default icon (empty means no icon)'), + 'default': '', + }, + 'LABEL_ENABLE': { 'name': _('Enable label printing'), 'description': _('Enable label printing from the web interface'), @@ -1168,6 +1174,12 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'validator': bool, }, + 'STOCK_LOCATION_DEFAULT_ICON': { + 'name': _('Stock Location Default Icon'), + 'description': _('Stock location default icon (empty means no icon)'), + 'default': '', + }, + 'BUILDORDER_REFERENCE_PATTERN': { 'name': _('Build Order Reference Pattern'), 'description': _('Required pattern for generating Build Order reference field'), @@ -1268,6 +1280,13 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'requires_restart': True, }, + 'PLUGIN_CHECK_SIGNATURES': { + 'name': _('Check plugin signatures'), + 'description': _('Check and show signatures for plugins'), + 'default': False, + 'validator': bool, + }, + # Settings for plugin mixin features 'ENABLE_PLUGINS_URL': { 'name': _('Enable URL integration'), @@ -1310,6 +1329,8 @@ class InvenTreeSetting(BaseInvenTreeSetting): }, } + typ = 'inventree' + class Meta: """Meta options for InvenTreeSetting.""" @@ -1623,6 +1644,8 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): }, } + typ = 'user' + class Meta: """Meta options for InvenTreeUserSetting.""" diff --git a/InvenTree/common/serializers.py b/InvenTree/common/serializers.py index 3ff2fc803a..4ff04de738 100644 --- a/InvenTree/common/serializers.py +++ b/InvenTree/common/serializers.py @@ -70,6 +70,7 @@ class GlobalSettingsSerializer(SettingsSerializer): 'choices', 'model_name', 'api_url', + 'typ', ] @@ -93,6 +94,7 @@ class UserSettingsSerializer(SettingsSerializer): 'choices', 'model_name', 'api_url', + 'typ', ] @@ -122,6 +124,7 @@ class GenericReferencedSettingSerializer(SettingsSerializer): 'choices', 'model_name', 'api_url', + 'typ', ] # set Meta class diff --git a/InvenTree/config_template.yaml b/InvenTree/config_template.yaml index aa5d715d04..549f2f011c 100644 --- a/InvenTree/config_template.yaml +++ b/InvenTree/config_template.yaml @@ -188,5 +188,6 @@ remote_login_header: REMOTE_USER # login_message: InvenTree demo instance - Click here for login details # navbar_message:
    InvenTree demo mode
    # logo: logo.png +# splash: splash_screen.jpg # hide_admin_link: true # hide_password_reset: true diff --git a/InvenTree/label/api.py b/InvenTree/label/api.py index 68c4205178..64bea60db3 100644 --- a/InvenTree/label/api.py +++ b/InvenTree/label/api.py @@ -158,16 +158,12 @@ class LabelPrintMixin: pages = [] - if len(outputs) > 1: - # If more than one output is generated, merge them into a single file - for output in outputs: - doc = output.get_document() - for page in doc.pages: - pages.append(page) + for output in outputs: + doc = output.get_document() + for page in doc.pages: + pages.append(page) - pdf = outputs[0].get_document().copy(pages).write_pdf() - else: - pdf = outputs[0].get_document().write_pdf() + pdf = outputs[0].get_document().copy(pages).write_pdf() inline = common.models.InvenTreeUserSetting.get_setting('LABEL_INLINE', user=request.user) diff --git a/InvenTree/label/templates/label/label_base.html b/InvenTree/label/templates/label/label_base.html index 363a7d3144..79913c946f 100644 --- a/InvenTree/label/templates/label/label_base.html +++ b/InvenTree/label/templates/label/label_base.html @@ -1,10 +1,13 @@ +{% load l10n %} {% load report %} {% load barcode %} - {% block content %} - - {% endblock %} +
    + {% block content %} + + {% endblock %} +
    diff --git a/InvenTree/label/templates/label/part/part_label.html b/InvenTree/label/templates/label/part/part_label.html index 5cc6be00c2..ba7b3c148b 100644 --- a/InvenTree/label/templates/label/part/part_label.html +++ b/InvenTree/label/templates/label/part/part_label.html @@ -1,5 +1,6 @@ {% extends "label/label_base.html" %} +{% load l10n %} {% load barcode %} {% block style %} @@ -8,15 +9,19 @@ position: fixed; left: 0mm; top: 0mm; + {% localize off %} height: {{ height }}mm; width: {{ height }}mm; + {% endlocalize %} } .part { font-family: Arial, Helvetica, sans-serif; display: inline; position: absolute; + {% localize off %} left: {{ height }}mm; + {% endlocalize %} top: 2mm; } diff --git a/InvenTree/label/templates/label/part/part_label_code128.html b/InvenTree/label/templates/label/part/part_label_code128.html index 9fbcf97c3b..088eed0555 100644 --- a/InvenTree/label/templates/label/part/part_label_code128.html +++ b/InvenTree/label/templates/label/part/part_label_code128.html @@ -1,5 +1,6 @@ {% extends "label/label_base.html" %} +{% load l10n %} {% load barcode %} {% block style %} @@ -8,15 +9,19 @@ position: fixed; left: 0mm; top: 0mm; + {% localize off %} height: {{ height }}mm; width: {{ height }}mm; + {% endlocalize %} } .part { font-family: Arial, Helvetica, sans-serif; display: inline; position: absolute; + {% localize off %} left: {{ height }}mm; + {% endlocalize %} top: 2mm; } diff --git a/InvenTree/label/templates/label/stockitem/qr.html b/InvenTree/label/templates/label/stockitem/qr.html index 8f489f81b8..ba0de3a4ec 100644 --- a/InvenTree/label/templates/label/stockitem/qr.html +++ b/InvenTree/label/templates/label/stockitem/qr.html @@ -1,5 +1,6 @@ {% extends "label/label_base.html" %} +{% load l10n %} {% load barcode %} {% block style %} @@ -8,8 +9,10 @@ position: fixed; left: 0mm; top: 0mm; + {% localize off %} height: {{ height }}mm; width: {{ height }}mm; + {% endlocalize %} } {% endblock %} diff --git a/InvenTree/label/templates/label/stocklocation/qr.html b/InvenTree/label/templates/label/stocklocation/qr.html index 8f489f81b8..ba0de3a4ec 100644 --- a/InvenTree/label/templates/label/stocklocation/qr.html +++ b/InvenTree/label/templates/label/stocklocation/qr.html @@ -1,5 +1,6 @@ {% extends "label/label_base.html" %} +{% load l10n %} {% load barcode %} {% block style %} @@ -8,8 +9,10 @@ position: fixed; left: 0mm; top: 0mm; + {% localize off %} height: {{ height }}mm; width: {{ height }}mm; + {% endlocalize %} } {% endblock %} diff --git a/InvenTree/label/templates/label/stocklocation/qr_and_text.html b/InvenTree/label/templates/label/stocklocation/qr_and_text.html index 2ff54dc817..86466a44bd 100644 --- a/InvenTree/label/templates/label/stocklocation/qr_and_text.html +++ b/InvenTree/label/templates/label/stocklocation/qr_and_text.html @@ -1,5 +1,6 @@ {% extends "label/label_base.html" %} +{% load l10n %} {% load barcode %} {% block style %} @@ -8,15 +9,19 @@ position: fixed; left: 0mm; top: 0mm; + {% localize off %} height: {{ height }}mm; width: {{ height }}mm; + {% endlocalize %} } .loc { font-family: Arial, Helvetica, sans-serif; display: inline; position: absolute; + {% localize off %} left: {{ height }}mm; + {% endlocalize %} top: 2mm; } diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po index 36ef2e9426..20b7ede8a6 100644 --- a/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/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: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -17,34 +17,34 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "API endpoint nebyl nalezen" #: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" -msgstr "" +msgstr "Podrobnosti o chybě lze nalézt v panelu administrace" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Zadejte datum" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -89,80 +89,84 @@ msgstr "Potvrzení emailové adresy" msgid "You must type the same email each time." msgstr "Pokaždé musíte zadat stejný email." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" -msgstr "" +msgstr "Chyba spojení" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" -msgstr "" +msgstr "Velikost obrázku je příliš velká" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" -msgstr "" +msgstr "Stahování obrázku překročilo maximální velikost" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Duplicitní výrobní číslo: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Nevyplněné výrobní číslo" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Neplatná skupina: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Neplatná/nevyplněná skupina {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Nenalezena žádná výrobní čísla" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "Chybějící soubor" msgid "Missing external link" msgstr "Chybějící externí odkaz" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Vyberte soubor k přiložení" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Odkaz" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Odkaz na externí URL" @@ -229,12 +233,12 @@ msgstr "Komentář" msgid "File comment" msgstr "Komentář k souboru" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Uživatel" @@ -271,19 +275,19 @@ msgstr "Chyba při přejmenování souboru" msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Název" @@ -292,21 +296,23 @@ msgstr "Název" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Popis" @@ -319,19 +325,19 @@ msgid "parent" msgstr "nadřazený" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" -msgstr "" +msgstr "Cesta" #: InvenTree/models.py:670 msgid "Server Error" -msgstr "" +msgstr "Chyba serveru" #: InvenTree/models.py:671 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Musí být platné číslo" @@ -388,7 +394,7 @@ msgstr "Duplicitní sloupec: '{col}'" #: InvenTree/serializers.py:602 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" -msgstr "" +msgstr "URL" #: InvenTree/serializers.py:603 msgid "URL of remote image file" @@ -464,11 +470,11 @@ msgstr "Polština" #: InvenTree/settings.py:623 msgid "Portuguese" -msgstr "" +msgstr "Portugalština" #: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" -msgstr "" +msgstr "Portugalština (Brazilská)" #: InvenTree/settings.py:625 msgid "Russian" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Umístěno" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Hotovo" @@ -537,13 +543,13 @@ msgid "Returned" msgstr "Vráceno" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Odesláno" #: InvenTree/status_codes.py:179 msgid "OK" -msgstr "" +msgstr "OK" #: InvenTree/status_codes.py:180 msgid "Attention needed" @@ -611,17 +617,17 @@ msgstr "" #: InvenTree/status_codes.py:276 msgid "Removed component item" -msgstr "" +msgstr "Odstraněná komponenta" #: InvenTree/status_codes.py:278 msgid "Split from parent item" -msgstr "" +msgstr "Rozdělit od nadřazené položky" #: InvenTree/status_codes.py:279 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -631,7 +637,7 @@ msgstr "" #: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:221 msgid "Sent to customer" -msgstr "" +msgstr "Odesláno zákazníkovi" #: InvenTree/status_codes.py:286 msgid "Returned from customer" @@ -659,7 +665,7 @@ msgstr "" #: InvenTree/validators.py:18 msgid "Not a valid currency code" -msgstr "" +msgstr "Neplatný kód měny" #: InvenTree/validators.py:45 msgid "Invalid character in part name" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Upravit informace o uživateli" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Nastavit heslo" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Hesla se musí shodovat" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Informace o systému" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1712,7 +1725,7 @@ msgstr "" #: common/models.py:833 company/models.py:93 company/models.py:94 msgid "Company name" -msgstr "" +msgstr "Jméno společnosti" #: common/models.py:834 msgid "Internal company name" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 522e9ac231..24c6584f9f 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/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: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-27 01:59\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "API-Endpunkt nicht gefunden" @@ -25,26 +25,26 @@ msgstr "API-Endpunkt nicht gefunden" msgid "Error details can be found in the admin panel" msgstr "Fehlerdetails finden Sie im Admin-Panel" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Datum eingeben" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Notizen" @@ -89,80 +89,84 @@ msgstr "Bestätigung der E-Mail Adresse" msgid "You must type the same email each time." msgstr "E-Mail Adressen müssen übereinstimmen." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "Verbindungsfehler" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "Server antwortete mit ungültigem Statuscode" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "Ausnahme aufgetreten" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "Bild ist zu groß" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "Bilddownload überschreitet maximale Größe" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "Remote-Server gab leere Antwort zurück" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Doppelte Seriennummer: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Keine Seriennummer angegeben" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ungültiger Gruppenbereich: {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Ungültige Gruppe: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ungültige Gruppensequenz: {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Ungültige/Keine Gruppe {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Keine Seriennummern gefunden" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "Falsch formatiertes Muster" @@ -195,7 +199,7 @@ msgstr "Fehlende Datei" msgid "Missing external link" msgstr "Fehlender externer Link" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Datei zum Anhängen auswählen" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Link" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Link zu einer externen URL" @@ -229,12 +233,12 @@ msgstr "Kommentar" msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Benutzer" @@ -271,19 +275,19 @@ msgstr "Fehler beim Umbenennen" msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Name" @@ -292,21 +296,23 @@ msgstr "Name" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Beschreibung" @@ -319,7 +325,7 @@ msgid "parent" msgstr "Eltern" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "Pfad" @@ -331,7 +337,7 @@ msgstr "Serverfehler" msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Platziert" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Fertig" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "Zurückgegeben" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Versendet" @@ -621,7 +627,7 @@ msgstr "Vom übergeordneten Element geteilt" msgid "Split child item" msgstr "Unterobjekt geteilt" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Lagerartikel zusammengeführt" @@ -687,27 +693,27 @@ msgstr "Überschuss darf 100% nicht überschreiten" msgid "Invalid value for overage" msgstr "Ungültiger Wert für Ausschuss" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Benutzerinformationen bearbeiten" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Passwort eingeben" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Passwörter stimmen nicht überein" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "Falsches Passwort angegeben" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Systeminformationen" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "Über InvenTree" @@ -724,7 +730,7 @@ msgstr "Ungültige Wahl für übergeordneten Bauauftrag" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Bauauftrag" @@ -733,7 +739,7 @@ msgstr "Bauauftrag" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Bauaufträge" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "Bauauftragsreferenz" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Referenz" @@ -758,7 +764,7 @@ msgstr "Referenz" msgid "Brief description of the build" msgstr "Kurze Beschreibung des Baus" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Eltern-Bauauftrag" @@ -767,40 +773,40 @@ msgstr "Eltern-Bauauftrag" msgid "BuildOrder to which this build is allocated" msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Teil" @@ -816,8 +822,8 @@ msgstr "Auftrag Referenz" msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "Quell-Lagerort" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "Bau-Statuscode" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "Losnummer" @@ -866,8 +872,8 @@ msgstr "Losnummer" msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Erstelldatum" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Fertigstellungsdatum" @@ -888,7 +894,7 @@ msgstr "Fertigstellungsdatum" msgid "completed by" msgstr "Fertiggestellt von" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "Aufgegeben von" @@ -896,12 +902,12 @@ msgstr "Aufgegeben von" msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Verantwortlicher Benutzer" @@ -912,8 +918,8 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Externer Link" @@ -924,86 +930,86 @@ msgstr "Extranotizen für den Bauauftrag" #: build/models.py:538 #, python-brace-format msgid "Build order {build} has been completed" -msgstr "" +msgstr "Bauauftrag {build} wurde fertiggestellt" #: build/models.py:544 msgid "A build order has been completed" -msgstr "" +msgstr "Ein Bauauftrag wurde fertiggestellt" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "kein Endprodukt angegeben" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "Endprodukt bereits hergstellt" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:1143 +#: build/models.py:1169 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:1152 +#: build/models.py:1178 #, 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:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Bauauftrag" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "Bauauftrag starten um Teile zuzuweisen" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "Quell-Lagerartikel" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Anzahl" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "Endprodukt" @@ -1070,10 +1076,10 @@ msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen" msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Seriennummer" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "Eine Liste von Endprodukten muss angegeben werden" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Lagerort" @@ -1130,13 +1136,13 @@ msgstr "Lagerort" msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "Status" @@ -1164,117 +1170,121 @@ msgstr "Unfertige Endprodukte entfernen" msgid "Delete any build outputs which have not been completed" msgstr "Lösche alle noch nicht abgeschlossenen Endprodukte" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "Nicht zugewiesene akzeptieren" -#: build/serializers.py:497 +#: build/serializers.py:512 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:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "Unvollständig Zuweisung akzeptieren" -#: build/serializers.py:513 +#: build/serializers.py:528 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:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "Bauauftrag hat unvollständige Aufbauten" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "Stücklisten-Position" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "Endprodukt" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen" -#: build/serializers.py:620 +#: build/serializers.py:636 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:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "Teil muss auf Lager sein" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Verfügbare Menge ({q}) überschritten" -#: build/serializers.py:699 +#: build/serializers.py:715 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:706 +#: build/serializers.py:722 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:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "Dieser Lagerbestand wurde bereits diesem Endprodukt zugewiesen" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "Zuweisungen müssen angegeben werden" -#: build/serializers.py:785 +#: build/serializers.py:801 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:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "Lagerort ausschließen" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "Lagerartikel vom ausgewählten Ort ausschließen" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "Wechselbares Lagerbestand" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Lagerartikel an mehreren Standorten können austauschbar verwendet werden" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "Ersatzbestand" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "Zuordnung von Ersatzteilen erlauben" @@ -1289,7 +1299,7 @@ msgstr "" #: build/tasks.py:123 #, python-brace-format msgid "Build order {bo} is now overdue" -msgstr "" +msgstr "Bauauftrag {bo} ist jetzt überfällig" #: build/templates/build/build_base.html:39 #: order/templates/order/order_base.html:28 @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "Bauauftrag abbrechen" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "Bauauftrag löschen" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "Bauauftrag fertigstellen" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "Baubeschreibung" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Dieser Bauauftrag ist dem Auftrag %(link)s zugeordnet" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Dieser Bauauftrag ist dem Bauauftrag %(link)s untergeordnet" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "Bauauftrag ist bereit abgeschlossen zu werden" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch ausstehende Endprodukte gibt" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 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:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Zieldatum" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "Bauauftrag war fällig am %(target)s" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "Bauauftrag war fällig am %(target)s" msgid "Overdue" msgstr "Überfällig" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Fertig" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Auftrag" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Aufgegeben von" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "Unfertige Endprodukte" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch unvollständige Endprodukte gibt" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "Bauauftrag löschen" @@ -1430,7 +1439,7 @@ 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:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Ziel-Lager" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "Zugewiesene Teile" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "Losnummer" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Erstellt" @@ -1476,7 +1485,7 @@ msgstr "Unter-Bauaufträge" msgid "Allocate Stock to Build" msgstr "Bestand Bauauftrag zuweisen" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "Bestandszuordnung aufheben" @@ -1507,7 +1516,7 @@ msgstr "Benötigte Teile bestellen" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Teile bestellen" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "Endprodukte löschen" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Druck Aktionen" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "Label drucken" @@ -1579,7 +1588,7 @@ msgstr "Fertiggestellte Endprodukte" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "Anhänge" msgid "Build Notes" msgstr "Bauauftrags-Notizen" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "Zuordnung abgeschlossen" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "Neuer Bauauftrag" @@ -1609,6 +1618,10 @@ msgstr "Bauaufträge ausdrucken" msgid "Build Order Details" msgstr "Bauauftragdetails" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "Unfertige Endprodukte" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" @@ -1838,7 +1851,7 @@ msgstr "Kategorie-Parametervorlage kopieren" msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "Vorlage" msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "Baugruppe" msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "Komponente" @@ -1867,7 +1880,7 @@ msgstr "Komponente" msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "Kaufbar" @@ -1875,7 +1888,7 @@ msgstr "Kaufbar" msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "Verkäuflich" @@ -1884,7 +1897,7 @@ msgstr "Verkäuflich" msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "Nachverfolgbar" msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "Format für den Namen eines Teiles" #: common/models.py:1074 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1075 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 msgid "Enable label printing" msgstr "Labeldruck aktivieren" -#: common/models.py:1075 +#: common/models.py:1081 msgid "Enable label printing from the web interface" msgstr "Labeldruck über die Website aktivieren" -#: common/models.py:1081 +#: common/models.py:1087 msgid "Label Image DPI" msgstr "Label Bild DPI" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "Berichte aktivieren" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "Berichterstellung aktivieren" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "Testberichte aktivieren" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "Testberichte anhängen" -#: common/models.py:1124 +#: common/models.py:1130 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:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "Losnummer Vorlage" -#: common/models.py:1131 +#: common/models.py:1137 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:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:1151 +#: common/models.py:1157 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:1153 +#: common/models.py:1159 msgid "days" msgstr "Tage" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "Auftrag Standardsendung" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "Erstelle eine Standardsendung für Aufträge" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "Anmeldung erlauben" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/models.py:1237 +#: common/models.py:1249 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:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "Passwort zweimal" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "Plugins beim Start prüfen" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "Navigations-Integration aktivieren" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "App-Integration aktivieren" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "Terminplan-Integration aktivieren" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "Geplante Aufgaben aktivieren" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "Ereignis-Integration aktivieren" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "Aktuelle Teile-Stände" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "Nicht validierte Stücklisten anzeigen" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "Anzahl des geänderten Bestands auf der Startseite" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:1472 +#: common/models.py:1491 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:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:1479 +#: common/models.py:1498 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:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "Teile suchen" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "Teile in der Suchvorschau anzeigen" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "Zuliefererteile durchsuchen" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "Zuliefererteile in der Suchvorschau anzeigen" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "Herstellerteile durchsuchen" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "Herstellerteile in der Suchvorschau anzeigen" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "Kategorien durchsuchen" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "Teilekategorien in der Suchvorschau anzeigen" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "Bestand durchsuchen" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "Lagerartikel in Suchvorschau anzeigen" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "Nicht verfügbare Artikel ausblenden" -#: common/models.py:1528 +#: common/models.py:1547 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:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "Lagerorte durchsuchen" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "Lagerorte in Suchvorschau anzeigen" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "Firmen durchsuchen" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "Firmen in der Suchvorschau anzeigen" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "Bestellungen durchsuchen" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "Bestellungen in der Suchvorschau anzeigen" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktive Bestellungen ausblenden" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "Aufträge durchsuchen" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "Aufträge in der Suchvorschau anzeigen" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "Inaktive Aufträge ausblenden" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktive Aufträge in der Suchvorschau ausblenden" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:1577 +#: common/models.py:1596 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:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Teilzeitplanung" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "Preis" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "Name für diesen Webhook" msgid "Active" msgstr "Aktiv" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "Token" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "Geheimnis" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "Host" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "Kopfzeile" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "Body" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" @@ -2755,7 +2792,7 @@ msgstr "Anlaufstelle" msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "Bild" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "Produziert diese Firma Teile?" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "Währung" @@ -2797,9 +2834,9 @@ msgstr "Währung" msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "Basisteil" @@ -2810,7 +2847,7 @@ msgstr "Teil auswählen" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "Hersteller auswählen" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "MPN" @@ -2848,7 +2885,7 @@ msgstr "Teilbeschreibung des Herstellers" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Herstellerteil" @@ -2858,9 +2895,9 @@ msgstr "Parametername" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "Wert" @@ -2868,10 +2905,10 @@ msgstr "Wert" msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "Einheiten" @@ -2885,13 +2922,13 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "Zulieferer" @@ -2902,8 +2939,8 @@ msgstr "Zulieferer auswählen" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "SKU (Lagerbestandseinheit)" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "Notiz" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "Verpackungen" @@ -2948,7 +2985,7 @@ msgstr "Verpackungen" msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "Vielfache" @@ -2959,9 +2996,9 @@ msgstr "Mehrere bestellen" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "Verfügbar" @@ -2992,12 +3029,12 @@ msgstr "Währungscode" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "Firma" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "Bestellung anlegen" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "Bild von URL herunterladen" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "Kunde" @@ -3064,7 +3101,7 @@ msgstr "Bild herunterladen" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "Zuliefererteile" @@ -3074,13 +3111,13 @@ msgstr "Neues Zuliefererteil anlegen" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "Neues Zuliefererteil" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "Teile bestellen" @@ -3094,8 +3131,8 @@ msgstr "Teile löschen" msgid "Delete Parts" msgstr "Teile löschen" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "Herstellerteile" @@ -3103,7 +3140,7 @@ msgstr "Herstellerteile" msgid "Create new manufacturer part" msgstr "Neues Herstellerteil anlegen" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "Neues Herstellerteil" @@ -3117,10 +3154,10 @@ msgstr "Zulieferer-Bestand" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "Bestellungen" @@ -3140,10 +3177,10 @@ msgstr "Neue Bestellung" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "Aufträge" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "Neuer Auftrag" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "Zugeordneter Bestand" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "Zulieferer-Liste" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "Hersteller" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Teil bestellen" @@ -3201,19 +3238,19 @@ msgstr "Keine Herstellerdaten verfügbar" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "Zulieferer" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "Zuliefererteil entfernen" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "Löschen" @@ -3221,14 +3258,14 @@ msgstr "Löschen" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parameter" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "Neuer Parameter" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "Parameter löschen" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "Parameter hinzufügen" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "Zugewiesene Lagerartikel" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "Zuliefererteil" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "Teil bestellen" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "Zulieferer-Bestand" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "Neuen Lagerartikel hinzufügen" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "Neuer Lagerartikel" @@ -3327,7 +3364,7 @@ msgstr "Preisinformationen ansehen" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "Keine Informationen zur Preisstaffel gefunden" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "Preisstaffel löschen" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" @@ -3363,14 +3400,13 @@ msgstr "Teilverfügbarkeit aktualisieren" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "Bestand" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "Bepreisung" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "Lagerartikel" @@ -3408,7 +3444,7 @@ msgstr "Neuer Zulieferer" msgid "New Manufacturer" msgstr "Neuer Hersteller" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "Kunden" @@ -3417,7 +3453,7 @@ msgstr "Kunden" msgid "New Customer" msgstr "Neuer Kunde" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "Firmen" @@ -3490,6 +3526,10 @@ msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "Bestellungs-Beschreibung" @@ -3522,8 +3562,8 @@ msgstr "Bestellungs-Status" msgid "Company from which the items are being ordered" msgstr "Firma bei der die Teile bestellt werden" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "Zieldatum für Auftrags-Fertigstellung." #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "Versanddatum" @@ -3642,7 +3682,7 @@ msgstr "gelöscht" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "Bestellung" @@ -3650,11 +3690,11 @@ msgstr "Bestellung" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "Bestellung" @@ -3662,9 +3702,9 @@ msgstr "Bestellung" msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "Empfangen" @@ -3673,9 +3713,9 @@ msgstr "Empfangen" msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "Preis" @@ -3849,11 +3889,11 @@ msgstr "Position stimmt nicht mit Kaufauftrag überein" msgid "Select destination location for received items" msgstr "Zielort für empfangene Teile auswählen" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "Losnummer für eingehende Lagerartikel" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "Seriennummern für eingehende Lagerartikel" @@ -3923,12 +3963,12 @@ msgstr "Folgende Seriennummern sind bereits zugewiesen" #: order/tasks.py:26 msgid "Overdue Purchase Order" -msgstr "" +msgstr "Überfällige Bestellung" #: order/tasks.py:31 #, python-brace-format msgid "Purchase order {po} is now overdue" -msgstr "" +msgstr "Bestellung {po} ist jetzt überfällig" #: order/tasks.py:88 msgid "Overdue Sales Order" @@ -3937,7 +3977,7 @@ msgstr "" #: order/tasks.py:93 #, python-brace-format msgid "Sales order {so} is now overdue" -msgstr "" +msgstr "Auftrag {so} ist jetzt überfällig" #: order/templates/order/order_base.html:33 msgid "Print purchase order report" @@ -3963,77 +4003,77 @@ msgstr "Auftrag bearbeiten" msgid "Cancel order" msgstr "Bestellung stornieren" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "Bestellung aufgeben" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "Elemente empfangen" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Teile empfangen" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "Bestellung als vollständig markieren" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "Auftrag fertigstellen" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "Bestellreferenz" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "Bestellungsbeschreibung" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "Bestellstatus" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "Keine Lieferanteninformationen verfügbar" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "Abgeschlossene Positionen" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "Unvollständig" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "Aufgegeben" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "Gesamtsumme" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "Gesamtkosten konnten nicht berechnet werden" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "Bestellung bearbeiten" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "Zulieferer-Teil auswählen" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Zeile entfernen" @@ -4099,7 +4139,7 @@ msgstr "Bestellungs-Positionen" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "Paketliste drucken" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "Abgeschlossene Sendungen" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "Dieser Auftrag ist nicht vollständig zugeordnet" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "Kundenreferenz" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "Ausstehende Sendungen" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "Aktionen" @@ -4226,40 +4266,40 @@ msgstr "Ausgehender Auftrag" msgid "Stock produced by Build Order" msgstr "Lagerartikel produziert von Bauauftrag" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "Lagerartikel für Bauauftrag benötigt" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "Gültig" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "Gesamte Stückliste validieren" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "Diese Option muss ausgewählt werden" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "Muss größer als 0 sein" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "Muss eine gültige Nummer sein" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "Standort für anfänglichen Bestand angeben" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Standard-Lagerort" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "Gesamtbestand" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "Verfügbarer Bestand" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "Bestellt" @@ -4296,516 +4336,528 @@ msgstr "Standard Stichwörter" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "Symbol" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "Symbol (optional)" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "Teil-Kategorien" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "Teile" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "Ungültige Auswahl für übergeordnetes Teil" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "Nächste verfügbare Seriennummern wären" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "Nächste verfügbare Seriennummer ist" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "Die neuste Seriennummer ist" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "Variante von" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Schlüsselwörter" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "Kategorie" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "Version" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Minimaler Bestand" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "Stock Keeping Units (SKU) für dieses Teil" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:920 +#: part/models.py:927 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:922 +#: part/models.py:929 msgid "Part notes" msgstr "Teile-Notizen" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2258 +#: part/models.py:2304 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:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "Benötigt" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:2314 +#: part/models.py:2360 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:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:2320 +#: part/models.py:2366 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:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Ungültiges Zeichen im Vorlagename ({c})" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "Einheit des Parameters" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "Wert" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "Teil-ID" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "Name des Teils" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "Teil-ID" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "Stufe" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "Optional" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "Geerbt" -#: part/models.py:2620 +#: part/models.py:2673 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:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:2626 +#: part/models.py:2679 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:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "Doppelte Beziehung existiert bereits" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "Kaufwährung dieses Lagerartikels" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "Bauteil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "Bestehende Stückliste löschen" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "Keine Bauteilspalte angegeben" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "Mindestens eine Stückliste-Position ist erforderlich" @@ -4837,7 +4889,7 @@ msgstr "Die Stückliste für %(part)s wurde zuletzt von %(checker)s am msgid "The BOM for %(part)s has not been validated." msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert." -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "Stücklisten-Aktionen" @@ -4845,101 +4897,101 @@ msgstr "Stücklisten-Aktionen" msgid "Delete Items" msgstr "Einträge löschen" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "Sie haben Benachrichtigungen für diese Kategorie abonniert" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "Benachrichtigungen für diese Kategorie abonnieren" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "Kategorieaktionen" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "Kategorie bearbeiten" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "Kategorie bearbeiten" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "Kategorie löschen" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "Kategorie löschen" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "Teil-Kategorie anlegen" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "Neue Kategorie" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "Pfad zur Kategorie" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "Oberste Teil-Kategorie" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Unter-Kategorien" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "Teile (inklusive Unter-Kategorien)" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "Neues Teil anlegen" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "Neues Teil" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "Optionen" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "Teil-Kategorie auswählen" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "Teil-Kategorie auswählen" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "Label drucken" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "Teilparameter" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "Teil-Kategorie hinzufügen" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "Teil hinzufügen" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "Ein weiteres Teil anlegen" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "Teil erfolgreich angelegt" @@ -4947,7 +4999,7 @@ msgstr "Teil erfolgreich angelegt" msgid "Import Parts" msgstr "Teile importieren" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "Teil duplizieren" @@ -4975,138 +5027,146 @@ msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)" msgid "Part Stock" msgstr "Teilbestand" -#: part/templates/part/detail.html:54 +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" +msgstr "Neu laden" + +#: part/templates/part/detail.html:59 msgid "Part Test Templates" msgstr "Teil Test-Vorlagen" -#: part/templates/part/detail.html:59 +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "Test Vorlage hinzufügen" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "Verkaufsauftragszuweisungen" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "Teile-Notizen" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "Teil Varianten" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "Neue Variante anlegen" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "neue Variante anlegen" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "Parameter hinzufügen" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "Verknüpfte Teile" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Stückliste" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "Export-Aktionen" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "Stückliste exportieren" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "Stücklisten-Bericht drucken" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "Stückliste hochladen" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "Stückliste überprüfen" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "Neue Stücklisten-Position" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "Stücklisten-Position hinzufügen" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "Baugruppen" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "Gefertigte Teile" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "Bauauftragszuweisungen" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "Zulieferer" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "Teil-Hersteller" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "Herstellerteile löschen" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "verknüpftes Teil" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Stückpreis Einkauf - %(currency)s" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Stückpreis Differenz - %(currency)s" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Stückpreis Zulieferer - %(currency)s" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "Stückpreis - %(currency)s" @@ -5169,19 +5229,19 @@ msgstr "Benachrichtigungen für dieses Teil abonnieren" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "Barcode Aktionen" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-Code anzeigen" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "Label drucken" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "Kosteninformationen ansehen" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "Bestands-Aktionen" @@ -5252,7 +5312,7 @@ msgstr "Teil ist virtuell (kein physisches Teil)" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "Inaktiv" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "Auf Lager" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "Zu Bauaufträgen zugeordnet" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "Zur Bestellung zugeordnet" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "Herstellbar" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "Im Bau" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "letzte Seriennummer" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "Nach Seriennummer suchen" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "Gesamtkosten" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "Keine Zulieferer-Preise verfügbar" @@ -5375,6 +5435,18 @@ msgstr "Interner Preis" msgid "No pricing information is available for this part." msgstr "Keine Preise für dieses Teil verfügbar" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "Datum" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "Varianten" @@ -5423,7 +5495,7 @@ msgstr "Verkaufspreis anzeigen" msgid "Calculation parameters" msgstr "Berechnungsparameter" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "Zuliefererkosten" @@ -5461,8 +5533,8 @@ msgstr "Verkaufskosten" msgid "No sale pice history available for this part." msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar." -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "Kein Bestand" @@ -5516,11 +5588,11 @@ msgstr "Neue Teilevariante anlegen" msgid "Create a new variant of template '%(full_name)s'." msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'." -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Unbekannte Datenbank" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "{title} v{version}" @@ -5627,51 +5699,55 @@ msgstr "E-Mail-Benachrichtigungen aktivieren" msgid "Allow sending of emails for event notifications" msgstr "Das Senden von Benachrichtigungen als E-Mails erlauben" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "Plugin Metadaten" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "Plugin-Konfiguration" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "Plugin-Konfigurationen" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "Schlüssel" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "Schlüssel des Plugins" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "Name des Plugins" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "Ist das Plugin aktiv" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "Plugin" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "Methode" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "Kein Autor gefunden" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "Kein Datum gefunden" @@ -5743,12 +5819,12 @@ msgstr "Entweder Paketname oder URL muss angegeben werden" msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Vorlagendatei '{template}' fehlt oder existiert nicht" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "Testbericht" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "Lagerartikel Test-Bericht" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "Seriennummer" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "Ergebnis" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "Datum" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "bestanden" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "Verbaute Objekte" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "Seriennummer" @@ -5910,310 +5979,310 @@ msgstr "Gültiges Teil muss angegeben werden" 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:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "Teile-Typ ('{pf}') muss {pe} sein" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:495 +#: stock/models.py:502 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:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:523 +#: stock/models.py:530 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:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "Die Verpackung dieses Lagerartikel ist gelagert in" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "verbaut in" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "Ablaufdatum" -#: stock/models.py:700 +#: stock/models.py:707 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:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "Lagerartikel-Notizen" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "In Teil umgewandelt" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seriennummern {exists} existieren bereits" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1533 +#: stock/models.py:1540 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:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "Test Notizen" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "Seriennummer ist zu lang" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "Kaufpreis für diesen Lagerartikel" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, 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:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "Seriennummern für neue Teile eingeben" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "Ziel-Bestand" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "Optionales Notizfeld" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "Lagerartikel für Installation auswählen" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "Lagerartikel ist nicht verfügbar" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "Ausgewähltes Teil ist nicht in der Stückliste" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "Ziel Lagerort für unverbautes Objekt" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr " Transaktionsnotizen hinzufügen (optional)" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "Testdaten hinzufügen" msgid "Installed Stock Items" msgstr "Installierte Lagerartikel" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "Lagerartikel installieren" @@ -6318,7 +6387,7 @@ msgstr "Lagerartikel installieren" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "Bestand zählen" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "Bestand hinzufügen" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "Bestand entfernen" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "Bestand serialisieren" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Bestand verschieben" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "Kunden zuweisen" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "zu Bestand zurückgeben" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "Lagerartikel deinstallieren" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "Deinstallieren" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "Lagerartikel installieren" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "Installieren" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "in Variante ändern" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "Lagerartikel duplizieren" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "Lagerartikel bearbeiten" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "Lagerartikel löschen" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "Barcode-Bezeichner" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "Elternposition" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "Kein Hersteller ausgewählt" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern." -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "Nur Leserechte" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden." -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht." -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "Dieser Lagerartikel ist einem Auftrag zugewiesen" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "Dieser Lagerartikel ist einem Bauauftrag zugewiesen" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden." -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "vorherige Seite" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "Zur vorherigen Seriennummer wechseln" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "nächste Seite" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "Zur nächsten Seriennummer wechseln" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "Verfügbare Menge" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "Kein Lagerort gesetzt" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "Tests" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "abgelaufen" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "überfällig" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "Zuletzt aktualisiert" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "Bestandsstatus bearbeiten" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "Warnung" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "Lagerartikel umwandeln" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "zurück ins Lager" @@ -6549,59 +6618,59 @@ msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Zu serialisierende Anzahl und eindeutige Seriennummern angeben." -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "Lagerort lokalisieren" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "Teile einchecken" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "Lagerort-Aktionen" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "Lagerort bearbeiten" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "Lagerort löschen" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "Neuer Lagerort" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "Lagerortpfad" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "Oberster Lagerstandort" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "Standortbesitzer" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 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:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "Bestand-Lagerorte" @@ -6872,15 +6941,15 @@ msgstr "In neuem Tab öffnen" msgid "Part Settings" msgstr "Teil-Einstellungen" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "Teileimport" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "Teil importieren" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "Teil-Parametervorlage" @@ -6892,47 +6961,47 @@ msgstr "Plugin-Einstellungen" msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." msgstr "Wenn Sie die folgenden Einstellungen ändern, müssen Sie InvenTree sofort neu starten. Ändern Sie dies nicht während der aktiven Nutzung." -#: templates/InvenTree/settings/plugin.html:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "Plugins" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "Plugin installieren" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "Admin" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "Autor" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "Version" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "Beispiel" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "Inaktive Plugins" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "Plugin-Fehlerstapel" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "Stufe" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "Meldung" @@ -6996,11 +7065,11 @@ msgstr "Commit-Hash" msgid "Commit Message" msgstr "Commit-Nachricht" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "Signaturstatus" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "Signatur Schlüssel" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "Keine Kategorie-Parametervorlagen gefunden" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "Vorlage bearbeiten" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "Vorlage löschen" @@ -7068,19 +7137,19 @@ msgstr "Keine Teilparametervorlagen gefunden" msgid "ID" msgstr "ID" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "Passwort ändern" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Bearbeiten" @@ -7659,7 +7728,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:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "Benötigte Menge" @@ -7673,6 +7742,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:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "Mindestmenge" @@ -7825,7 +7895,7 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barco msgid "Unlink" msgstr "Entfernen" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "Lagerartikel entfernen" @@ -7874,10 +7944,10 @@ msgstr "Zeilendaten anzeigen" msgid "Row Data" msgstr "Zeilendaten" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Schliessen" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "Vorlage einer Stückliste herunterladen" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "Format" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "Dateiformat auswählen" @@ -7948,390 +8018,390 @@ msgstr "Zulieferer-Daten in Stückliste-Export einschließen" msgid "Remove substitute part" msgstr "Ersatzteil entfernen" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "Wählen Sie ein neues Ersatzteil aus und fügen Sie sie mit den folgenden Eingaben hinzu" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "Sind Sie sicher, dass Sie dieses Ersatzteil entfernen möchten?" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "Ersatzteil entfernen" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "Ersatzteil hinzufügen" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "Stücklisten Ersatzteile bearbeiten" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "Ausgewählte Stücklistenpositionen löschen?" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "Stückliste für Bauteile laden" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "Varianten erlaubt" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "Kein Lagerbestand verfügbar" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "Beinhaltet Variante und Ersatzbestand" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "Beinhaltet Variantenbestand" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "Enthält Ersatzbestand" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "Ersatzteile" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "Kaufpreisspanne" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "Durchschnittlicher Kaufpreis" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "Stückliste anzeigen" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "Stücklisten-Position kontrollieren" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "Diese Position wurde kontrolliert" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "Ersatzteile bearbeiten" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "Stücklisten-Position bearbeiten" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "Stücklisten-Position löschen" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "benötigtes Teil" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "Geerbt von übergeordneter Stückliste" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "Bauauftrag bearbeiten" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "Bauauftrag erstellen" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "Bauauftrag abbrechen" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "Sind Sie sicher, dass sie diesen Bauauftrag abbrechen möchten?" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "Lagerbestand wurde zu diesem Bauauftrag hinzugefügt" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "Für diesen Bau-Auftrag sind noch unvollständige Endprodukte vorhanden" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "Bauauftrag ist bereit abgeschlossen zu werden" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "Bauauftrag ist unvollständig" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "Bauauftrag fertigstellen" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "Nächste verfügbare Seriennummer" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "Letzte Seriennummer" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "Die Stückliste enthält verfolgbare Teile" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "Endprodukte müssen individuell angelegt werden" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "Nachverfolgbare Teile können Seriennummern haben" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "Seriennummeren für mehrere einzelne Endprodukte angeben" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "Endprodukt anlegen" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "Lagerartikel zu diesem Endprodukt zuweisen" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "Bestand von Endpordukt zurücknehmen" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "Endprodukt fertigstellen" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "Endprodukt entfernen" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "Sind Sie sicher, dass sie alle Lagerartikel von diesem Bauauftrag entfernen möchten?" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "Lagerartikel zurücknehmen" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "Endprodukte auswählen" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "Mindestens ein Endprodukt muss ausgewählt werden" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "Endprodukt" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "Endprodukte fertigstellen" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "Endprodukte entfernen" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "Keine Allokationen für Bauauftrag gefunden" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "Standort nicht angegeben" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "Keine aktiven Endprodukte gefunden" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "Bestand zuteilen" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "Keine nachverfolgten Stücklisten-Einträge für diesen Bauauftrag" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "Abgeschlossene Tests" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "Keine erforderlichen Tests für diesen Bauauftrag" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "Zuordnung bearbeiten" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "Zuordnung entfernen" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "Anzahl pro" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "Unzureichender Bestand verfügbar" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "Ausreichender Bestand verfügbar" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "Zugeordnet" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "Bestand zuweisen" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Teile auswählen" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "Sie müssen mindestens ein Teil auswählen" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "Alle Teile zugeordnet" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "Alle ausgewählten Teile wurden vollständig zugeordnet" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 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:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "Lagerartikel für Bauauftrag zuweisen" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "Keine passenden Lagerstandorte" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "Keine passenden Lagerbestände" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "Automatische Lagerzuordnung" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 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:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "Wenn ein Standort angegeben ist, wird der Lagerbestand nur von diesem Ort zugewiesen" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 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:2287 +#: templates/js/translated/build.js:2328 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Wenn ein Ersatzbestand erlaubt ist, wird es dort verwendet, wo kein Vorrat des Primärteils gefunden werden kann" -#: templates/js/translated/build.js:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "Lagerartikel zuordnen" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "Keine Bauaufträge passen zur Anfrage" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "Auswählen" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "Fortschritt" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "Keine Teile zugeordnet zu" @@ -8347,11 +8417,11 @@ msgstr "Herstellerteil hinzufügen" msgid "Edit Manufacturer Part" msgstr "Herstellerteil ändern" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "Zulieferer hinzufügen" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "Zuliefererteil hinzufügen" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "Keine Herstellerteile gefunden" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "Vorlagenteil" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "Keine Parameter gefunden" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "Parameter löschen" @@ -8506,44 +8576,44 @@ msgstr "Dieses Formular offen lassen" msgid "Enter a valid number" msgstr "Gib eine gültige Nummer ein" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Fehler in Formular" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "Eingabe leeren" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "Dateispalte" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "Feldname" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "Spalten auswählen" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "JA" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "NEIN" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "Notiz aktualisiert" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "Label an den Drucker gesendet" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "Lagerartikel auswählen" @@ -8722,381 +8792,409 @@ msgstr "Keine ungelesenen Benachrichtigungen" msgid "Notifications will load here" msgstr "Benachrichtigungen erscheinen hier" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "Dieser Sendung wurden keine Artikel zugewiesen" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "Die folgenden Artikel werden verschickt" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "Sendung fertigstellen" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "Sendung bestätigen" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "Keine ausstehenden Sendungen gefunden" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "Keine Lagerartikel für offene Sendungen zugewiesen" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "Überspringen" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "Bestellung vervollständigen" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "Diese Bestellung als vollständig markieren?" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "Alle Einträge wurden erhalten" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 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/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "Fertigstellen dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind." -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "Bestellung abbrechen" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "Sind Sie sicher, dass Sie diese Bestellung abbrechen möchten?" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "Diese Bestellung kann nicht storniert werden" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "Bestellung aufgeben" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "Nachdem diese Bestellung plaziert ist können die Positionen nicht länger bearbeitbar ist." -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "Auftrag stornieren" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "Sendung anlegen" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "Kunden hinzufügen" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "Auftrag anlegen" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "Bestellung bearbeiten" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "Bestellung exportieren" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "Mindestens ein kaufbares Teil muss ausgewählt werden" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "Zu bestellende Menge" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "Neues Zuliefererteil" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "Neue Bestellung" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "Zur Bestellung hinzufügen" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "Keine passenden Lieferantenteile" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "Keine passenden Bestellungen" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "Positionen auswählen" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "Mindestens eine Position muss ausgewählt werden" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "Losnummer hinzufügen" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "Seriennummern hinzufügen" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "Zu erhaltende Menge" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "Status" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "Bestellnummer" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "Bestellt" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "Zu erhaltende Menge" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "Empfang der Teile bestätigen" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "Bestellpositionen erhalten" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "Keine Bestellungen gefunden" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "Bestellung überfällig" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "Positionen" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "Position duplizieren" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "Position löschen" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "Keine Positionen gefunden" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "Summe" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "Stück-Preis" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "Gesamtpreis" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "Diese Position ist überfällig" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "Position empfangen" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "Position duplizieren" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "Position bearbeiten" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "Position löschen" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "Position duplizieren" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "Zeile bearbeiten" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "Zeile löschen" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "Position duplizieren" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "Zeile bearbeiten" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "Zeile löschen" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "Keine passenden Positionen gefunden" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "Keine Aufträge gefunden" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "Ungültiger Kunde" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "Sendung bearbeiten" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "Sendung fertigstellen" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "Sendung löschen" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "Sendung bearbeiten" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "Sendung löschen" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "Keine passenden Sendungen gefunden" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "Sendungsreferenz" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "Nicht versandt" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "Nachverfolgen" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "Rechnung" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "Sendung hinzufügen" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "Bestandszuordnung bestätigen" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "Artikel zu Kundenauftrag zuweisen" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "Keine Allokationen für Verkaufsaufträge gefunden" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "Bestandszuordnung bearbeiten" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "Löschvorgang bestätigen" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "Bestands-Zuordnung löschen" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "an Kunde versand" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "Lagerstandort nicht angegeben" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "Seriennummern zuweisen" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "Bestand kaufen" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "Preis berechnen" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "Kann nicht gelöscht werden, da Artikel versandt wurden" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "Kann nicht gelöscht werden, da Artikel zugewiesen sind" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "Seriennummern zuweisen" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "Stückpreis aktualisieren" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "Keine passenden Positionen gefunden" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "Keine passenden Positionen gefunden" @@ -9180,241 +9278,269 @@ msgstr "Parameterdaten vom Originalteil kopieren" msgid "Parent part category" msgstr "Übergeordnete Teilkategorie" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "Teil-Kategorie bearbeiten" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "Möchten Sie diese Kategorie wirklich löschen?" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "Teil bearbeiten" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "Teil bearbeitet" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "Teil-Variante anlegen" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "Aktives Teil" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "Teil kann nicht gelöscht werden, da es derzeit aktiv ist" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "Das Löschen dieses Teils kann nicht rückgängig gemacht werden" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "Teil löschen" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "Benachrichtigungen für dieses Teil abonnieren" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "Sie haben Benachrichtigungen für dieses Teil abgemeldet" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "Die Stückliste zu validieren markiert jede Zeile als gültig" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "Stückliste prüfen" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "überprüfte Stückliste" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "Stückliste kopieren" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "Kein Lagerbestand verfügbar" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "Nachverfolgbares Teil" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "virtuelles Teil" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "Abonnierter Teil" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "Verkäufliches Teil" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "Keine Varianten gefunden" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "Teile-Beziehung löschen" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "Teile-Beziehung löschen" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "Keine Teile gefunden" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "Nicht verfügbar" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "Keine Kategorie" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "Listenansicht" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "Rasteransicht" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "Teil-Kategorie auswählen" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "Teil-Kategorie wählen" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "Kategorie erforderlich" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "Baumansicht" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "Abonnierte Kategorie" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "Keine zur Anfrage passenden Testvorlagen" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "Dieses Testergebnis ist für ein Hauptteil" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "Testergebnis-Vorlage bearbeiten" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "Testergebnis-Vorlage löschen" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "Keine ${human_name} Informationen gefunden" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "${human_name} bearbeiten" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "${human_name} löschen" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" -msgstr "Aktueller Lagerbestand" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" +msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "Keine Zeitplanung für dieses Teil vorhanden" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "Geplante Lagermengen" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "Einzelpreis" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "Einzelpreisdifferenz" @@ -9488,11 +9614,11 @@ msgstr "Aufträge auswählen" msgid "Sales Order(s) must be selected before printing report" msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "Ergebnisse minimieren" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "Ergebnisse entfernen" @@ -9508,376 +9634,376 @@ msgstr "Lager-Serialisierung bestätigen" msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "Lagerartikel-Ort bearbeiten" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "Neuer Lagerstandort" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "Sind Sie sicher, dass Sie diesen Lagerort löschen wollen?" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "Bestand-Lagerort löschen" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "Dieser Teil kann nicht serialisiert werden" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "Lagerartikel dupliziert" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "Bestand duplizieren" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel löschen wollen?" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "Lagerartikel löschen" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "Lagerartikel bearbeiten" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "Neuer Lagerartikel erstellt" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "Mehrere Lagerartikel erstellt" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "Seriennummer finden" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "Seriennummer eingeben" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "Eine Seriennummer eingeben" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "Keine passende Seriennummer" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "Mehrere Ergebnisse gefunden" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "Bestand Zuweisung bestätigen" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "Einem Kunden zuordnen" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "Zusammenführung der Artikel bestätigen" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "Artikel zusammenführen" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "Verschieben" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "Bestand zählen" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "Anzahl" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "Bestand entfernen" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "Entfernen" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "Hinzufügen" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "Sie müssen mindestens einen Lagerartikel auswählen" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "Bestands-Anpassung bestätigen" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "KEIN ERGEBNIS" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "Test bestanden" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "Testdatum" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "Testergebnis löschen" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "In Arbeit" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "In Lagerartikel installiert" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "Lagerartikel wird produziert" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "Lagerartikel wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "Lagerartikel wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "Serialisierter Lagerartikel wurde zugewiesen" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "Lagerartikel wurde vollständig zugewiesen" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "Lagerartikel wurde teilweise zugewiesen" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "Lagerartikel in anderem Element verbaut" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "Lagerartikel läuft demnächst ab" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "Lagerartikel abgewiesen" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "Lagerartikel verloren" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "Lagerartikel zerstört" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "gelöscht" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "Inventur" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden Lagerartikel" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "Status setzen" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "Status Code setzen" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "Status Code muss ausgewählt werden" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "Details" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "Artikelinformationen nicht verfügbar" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "Standort nicht mehr vorhanden" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "Lagerartikel existiert nicht mehr" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "Keine installierten Elemente" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "Lagerartikel entfernen" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "Zu deinstallierende Lagerartikel auswählen" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "Einen weiteren Lagerartikel in dieses Teil installiert" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "Dieser Lagerartikel ist aktuell vorhanden" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "Der Lagerbestand ist nicht bereits in einem anderen Bestand installiert" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "Teil zur Installation auswählen" @@ -10133,61 +10259,57 @@ msgstr "Tabellendaten exportieren" msgid "Select File Format" msgstr "Dateiformat wählen" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "Lade Daten" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "Zeilen pro Seite" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "Alle Zeilen anzeigen" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "zeige" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "bis" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "von" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "Zeilen" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Suche" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "Keine passenden Ergebnisse gefunden" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "Zeige/Verstecke Pagination" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "Neu laden" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "umschalten" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "Spalten" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "Alle" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index eea6e139c9..1dd6153361 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/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: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-29 10:50\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,159 +17,163 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" -msgstr "" +msgstr "Το API endpoint δε βρέθηκε" #: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" -msgstr "" +msgstr "Μπορείτε να βρείτε λεπτομέρειες σφάλματος στον πίνακα διαχείρισης" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" -msgstr "" +msgstr "Εισάγετε ημερομηνία" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" -msgstr "" +msgstr "Σημειώσεις" #: InvenTree/format.py:142 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" -msgstr "" +msgstr "Η τιμή '{name}' δεν εμφανίζεται σε μορφή μοτίβου" #: InvenTree/format.py:152 msgid "Provided value does not match required pattern: " -msgstr "" +msgstr "Η παρεχόμενη τιμή δεν ταιριάζει με το απαιτούμενο απαραραίητη μοτίβο: " #: InvenTree/forms.py:133 msgid "Enter password" -msgstr "" +msgstr "Εισάγετε κωδικό" #: InvenTree/forms.py:134 msgid "Enter new password" -msgstr "" +msgstr "Εισάγετε νέο κωδικό πρόσβασης" #: InvenTree/forms.py:143 msgid "Confirm password" -msgstr "" +msgstr "Επιβεβαιώστε τον κωδικό πρόσβασης" #: InvenTree/forms.py:144 msgid "Confirm new password" -msgstr "" +msgstr "Επιβεβαιώστε τον νέο κωδικό πρόσβασης" #: InvenTree/forms.py:148 msgid "Old password" -msgstr "" +msgstr "Παλιός κωδικός πρόσβασης" #: InvenTree/forms.py:177 msgid "Email (again)" -msgstr "" +msgstr "E-mail (ξανά)" #: InvenTree/forms.py:181 msgid "Email address confirmation" -msgstr "" +msgstr "Επιβεβαίωση διεύθυνσης email" #: InvenTree/forms.py:202 msgid "You must type the same email each time." -msgstr "" +msgstr "Πρέπει να πληκτρολογήσετε το ίδιο email κάθε φορά." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" -msgstr "" +msgstr "Σφάλμα σύνδεσης" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" -msgstr "" +msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" -msgstr "" - -#: InvenTree/helpers.py:186 -msgid "Server responded with invalid Content-Length value" -msgstr "" +msgstr "Προέκυψε σφάλμα" #: InvenTree/helpers.py:189 +msgid "Server responded with invalid Content-Length value" +msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\"" + +#: InvenTree/helpers.py:192 msgid "Image size is too large" -msgstr "" +msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" -msgstr "" +msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" -msgstr "" +msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" -msgstr "" +msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" -msgstr "" +msgstr "Διπλότυπο serial number: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" -msgstr "" +msgstr "Μη έγκυρη ποσότητα" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" -msgstr "" +msgstr "Κενό σειριακό αριθμό συμβολοσειράς" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" -msgstr "" +msgstr "Μη έγκυρο εύρος ομάδας: {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "Μη έγκυρη ομάδα: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" -msgstr "" +msgstr "Μη έγκυρη ακολουθία ομάδας: {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" -msgstr "" +msgstr "Μη έγκυρη ομάδα {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" -msgstr "" +msgstr "Δεν βρέθηκαν σειριακοί αριθμοί" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" -msgstr "" +msgstr "Ο αριθμός μοναδικών σειριακών αριθμών ({s}) πρέπει να αντιστοιχεί στην ποσότητα ({q})" + +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισάγατε" #: InvenTree/models.py:236 msgid "Improperly formatted pattern" -msgstr "" +msgstr "Λανθασμένο μοτίβο" #: InvenTree/models.py:243 msgid "Unknown format key specified" -msgstr "" +msgstr "Δώσατε λάθος μορφή κλειδιού" #: InvenTree/models.py:249 msgid "Missing required format key" @@ -195,7 +199,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "" @@ -229,12 +233,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "" @@ -271,19 +275,19 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "" @@ -292,21 +296,23 @@ msgstr "" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "" @@ -319,7 +325,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -621,7 +627,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index cdb0d4d84f..a048464cc0 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/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: 2022-08-04 00:21+0000\n" +"POT-Creation-Date: 2022-08-24 21:34+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "" @@ -26,26 +26,26 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -90,80 +90,84 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:173 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:177 InvenTree/helpers.py:182 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:179 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:187 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:190 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:202 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:207 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:215 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:557 +#: InvenTree/helpers.py:598 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:564 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:605 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:567 +#: InvenTree/helpers.py:608 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:599 +#: InvenTree/helpers.py:640 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:602 +#: InvenTree/helpers.py:643 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:630 +#: InvenTree/helpers.py:671 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:638 +#: InvenTree/helpers.py:679 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:644 +#: InvenTree/helpers.py:685 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:648 +#: InvenTree/helpers.py:689 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/mixins.py:72 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -196,7 +200,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -208,16 +212,16 @@ msgstr "" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "" @@ -230,12 +234,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1636 -#: common/models.py:1637 common/models.py:1860 common/models.py:1861 -#: common/models.py:2123 common/models.py:2124 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2573 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "" @@ -272,19 +276,19 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1846 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1858 templates/js/translated/stock.js:2344 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "" @@ -293,21 +297,23 @@ msgstr "" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1877 -#: templates/js/translated/part.js:1946 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2356 templates/js/translated/stock.js:2410 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "" @@ -320,7 +326,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1883 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -332,7 +338,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "" @@ -517,7 +523,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -538,7 +544,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -622,7 +628,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -725,7 +731,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -744,14 +750,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -759,7 +765,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -768,40 +774,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 templates/InvenTree/search.html:80 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2436 -#: templates/js/translated/stock.js:2631 templates/js/translated/stock.js:2765 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -817,8 +823,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -859,7 +865,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -867,8 +873,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -881,7 +887,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -889,7 +895,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -897,12 +903,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -913,8 +919,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:199 msgid "External Link" msgstr "" @@ -931,80 +937,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:171 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2509 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1668 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1012,42 +1018,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:294 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2091 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2356 -#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2643 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1071,10 +1077,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1087,8 +1093,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1104,7 +1110,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:569 +#: build/serializers.py:278 stock/api.py:577 msgid "The following serial numbers already exist" msgstr "" @@ -1113,17 +1119,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:384 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2450 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1131,13 +1137,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2527 templates/js/translated/stock.js:2659 +#: order/serializers.py:465 stock/templates/stock/item_base.html:417 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1165,117 +1171,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1315,63 +1325,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1379,42 +1397,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:364 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1431,7 +1440,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1444,20 +1453,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:164 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2666 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1477,7 +1486,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1508,7 +1517,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1561,12 +1570,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1580,7 +1589,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1590,15 +1599,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1610,6 +1619,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1759,821 +1772,853 @@ msgstr "" msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:880 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:880 +msgid "Tree Depth" msgstr "" #: common/models.py:881 +msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." +msgstr "" + +#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:891 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:887 +#: common/models.py:897 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:888 +#: common/models.py:898 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:894 +#: common/models.py:904 msgid "IPN Regex" msgstr "" -#: common/models.py:895 +#: common/models.py:905 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:899 +#: common/models.py:909 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:900 +#: common/models.py:910 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:906 +#: common/models.py:916 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:907 +#: common/models.py:917 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:913 +#: common/models.py:923 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:914 +#: common/models.py:924 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:920 +#: common/models.py:930 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:921 +#: common/models.py:931 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:927 +#: common/models.py:937 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:928 +#: common/models.py:938 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:934 +#: common/models.py:944 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:935 +#: common/models.py:945 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:941 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" msgstr "" -#: common/models.py:942 +#: common/models.py:952 msgid "Parts are templates by default" msgstr "" -#: common/models.py:948 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" msgstr "" -#: common/models.py:949 +#: common/models.py:959 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:955 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" -#: common/models.py:956 +#: common/models.py:966 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:962 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" -#: common/models.py:963 +#: common/models.py:973 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:969 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" -#: common/models.py:970 +#: common/models.py:980 msgid "Parts are salable by default" msgstr "" -#: common/models.py:976 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 msgid "Trackable" msgstr "" -#: common/models.py:977 +#: common/models.py:987 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:983 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 msgid "Virtual" msgstr "" -#: common/models.py:984 +#: common/models.py:994 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:990 +#: common/models.py:1000 msgid "Show Import in Views" msgstr "" -#: common/models.py:991 +#: common/models.py:1001 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:997 +#: common/models.py:1007 msgid "Show Price in Forms" msgstr "" -#: common/models.py:998 +#: common/models.py:1008 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1009 +#: common/models.py:1019 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1010 +#: common/models.py:1020 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1021 +#: common/models.py:1031 msgid "Show Price History" msgstr "" -#: common/models.py:1022 +#: common/models.py:1032 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1028 +#: common/models.py:1038 msgid "Show related parts" msgstr "" -#: common/models.py:1029 +#: common/models.py:1039 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1035 +#: common/models.py:1045 msgid "Create initial stock" msgstr "" -#: common/models.py:1036 +#: common/models.py:1046 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1042 +#: common/models.py:1052 msgid "Internal Prices" msgstr "" -#: common/models.py:1043 +#: common/models.py:1053 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1049 +#: common/models.py:1059 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1050 +#: common/models.py:1060 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1056 +#: common/models.py:1066 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1057 +#: common/models.py:1067 msgid "Format to display the part name" msgstr "" -#: common/models.py:1064 +#: common/models.py:1074 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1075 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 msgid "Enable label printing" msgstr "" -#: common/models.py:1065 +#: common/models.py:1081 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1071 +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1072 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1081 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1082 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1088 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1089 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1095 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1096 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1106 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1107 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1113 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1114 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1120 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1121 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1126 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1127 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1133 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1134 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1140 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1141 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1143 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1148 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1149 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1155 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1156 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1162 -msgid "Build Order Reference Pattern" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1163 -msgid "Required pattern for generating Build Order reference field" -msgstr "" - -#: common/models.py:1169 -msgid "Sales Order Reference Pattern" -msgstr "" - -#: common/models.py:1170 -msgid "Required pattern for generating Sales Order reference field" -msgstr "" - -#: common/models.py:1176 -msgid "Sales Order Default Shipment" -msgstr "" - -#: common/models.py:1177 -msgid "Enable creation of default shipment with sales orders" -msgstr "" - -#: common/models.py:1183 -msgid "Purchase Order Reference Pattern" +#: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1184 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1191 -msgid "Enable password forgot" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1192 -msgid "Enable password forgot function on the login pages" +msgid "Required pattern for generating Sales Order reference field" msgstr "" #: common/models.py:1198 -msgid "Enable registration" +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1199 -msgid "Enable self-registration for users on the login pages" +msgid "Enable creation of default shipment with sales orders" msgstr "" #: common/models.py:1205 -msgid "Enable SSO" +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Enable SSO on the login pages" -msgstr "" - -#: common/models.py:1212 -msgid "Email required" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1213 -msgid "Require user to supply mail on signup" +msgid "Enable password forgot" msgstr "" -#: common/models.py:1219 -msgid "Auto-fill SSO users" +#: common/models.py:1214 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1220 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable registration" msgstr "" -#: common/models.py:1226 -msgid "Mail twice" +#: common/models.py:1221 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1227 -msgid "On signup ask users twice for their mail" +msgid "Enable SSO" msgstr "" -#: common/models.py:1233 -msgid "Password twice" +#: common/models.py:1228 +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1234 -msgid "On signup ask users twice for their password" +msgid "Email required" msgstr "" -#: common/models.py:1240 -msgid "Group on signup" +#: common/models.py:1235 +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1241 -msgid "Group to which new users are assigned on registration" +msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1247 -msgid "Enforce MFA" +#: common/models.py:1242 +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1248 -msgid "Users must use multifactor security." +msgid "Mail twice" msgstr "" -#: common/models.py:1254 -msgid "Check plugins on startup" +#: common/models.py:1249 +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1255 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Password twice" +msgstr "" + +#: common/models.py:1256 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1262 +msgid "Group on signup" msgstr "" #: common/models.py:1263 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1269 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1270 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1276 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1277 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1264 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1271 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1272 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1279 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1280 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1287 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1288 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1295 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1296 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1313 common/models.py:1629 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1335 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1336 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1342 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1343 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1349 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1350 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1356 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1357 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1363 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1364 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1370 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1371 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1377 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1378 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1384 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1385 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1391 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1392 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1398 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1399 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1405 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1406 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1412 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1413 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1419 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1420 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1426 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1427 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1433 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1434 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1440 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1441 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1447 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1448 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1454 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1455 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1461 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1462 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1468 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1469 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1475 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1476 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1482 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1483 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1489 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1490 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1496 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1497 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1503 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1504 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1510 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1517 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1518 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1524 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1525 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1531 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1532 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1538 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1539 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1545 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1546 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1552 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1553 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1559 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1560 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1566 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1567 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1573 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1574 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1580 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1581 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1587 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1588 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1594 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1595 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1609 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1610 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1669 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1676 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2096 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1677 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1837 common/models.py:2015 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1838 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1847 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1852 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2581,67 +2626,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1853 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1867 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1868 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1875 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1876 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1982 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1983 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1991 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:1992 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1999 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2000 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2006 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2007 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2021 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2022 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2748,7 +2793,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2781,8 +2826,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2790,9 +2835,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:142 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2803,7 +2848,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:206 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2821,8 +2866,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2841,7 +2886,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:216 msgid "Manufacturer Part" msgstr "" @@ -2851,9 +2896,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2861,10 +2906,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2878,13 +2923,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:223 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2895,8 +2940,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2917,23 +2962,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:239 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2941,7 +2986,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2952,9 +2997,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2990,7 +3035,7 @@ msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3027,12 +3072,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:395 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2491 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3057,7 +3102,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:118 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3067,13 +3112,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3088,7 +3133,7 @@ msgid "Delete Parts" msgstr "" #: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3096,7 +3141,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3110,10 +3155,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3133,10 +3178,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3152,7 +3197,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,7 +3213,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3199,14 +3244,14 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3214,14 +3259,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3230,7 +3275,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3251,10 +3296,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:232 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3265,7 +3310,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3298,13 +3343,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3320,7 +3365,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2168 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3329,12 +3374,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2178 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2192 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3356,14 +3401,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:151 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3382,14 +3426,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2368 users/models.py:40 +#: templates/InvenTree/search.html:153 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3410,7 +3454,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3483,6 +3527,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3515,8 +3563,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3573,7 +3621,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3635,7 +3683,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3643,11 +3691,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:178 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2472 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3655,9 +3703,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3666,9 +3714,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:185 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3842,11 +3890,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3956,77 +4004,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4053,11 +4101,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4092,7 +4140,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4138,7 +4186,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4152,7 +4200,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4176,8 +4224,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4207,52 +4255,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:505 +#: part/api.py:514 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:525 +#: part/api.py:534 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:543 +#: part/api.py:552 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:575 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:695 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:696 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:702 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1125 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1129 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1144 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1175 part/api.py:1179 part/api.py:1194 part/api.py:1198 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4261,14 +4309,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4289,516 +4337,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1890 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1941 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:1950 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:1958 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:1965 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4830,7 +4890,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4838,101 +4898,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4940,7 +5000,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4968,138 +5028,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:558 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5162,19 +5230,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5183,8 +5251,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5245,7 +5313,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5266,22 +5334,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:371 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5294,7 +5362,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:327 msgid "Search for serial number" msgstr "" @@ -5333,7 +5401,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5368,6 +5436,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5416,7 +5496,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5454,8 +5534,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5509,11 +5589,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5620,51 +5700,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5736,12 +5820,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5842,12 +5926,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:316 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5856,22 +5940,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2400 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5886,327 +5963,327 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2649 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" -#: stock/api.py:521 +#: stock/api.py:529 msgid "Quantity is required" msgstr "" -#: stock/api.py:528 +#: stock/api.py:536 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:553 +#: stock/api.py:561 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:246 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:423 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6303,7 +6380,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2793 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6311,7 +6388,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6342,195 +6419,191 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 -msgid "Remove stock" -msgstr "" - -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:85 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:101 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:101 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:157 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:192 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:210 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:250 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:265 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:278 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:286 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:294 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:300 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:322 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:322 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:331 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:331 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:344 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:388 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:403 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:427 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:427 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:429 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:429 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:436 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:441 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:445 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:515 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:588 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:591 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:592 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:600 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:628 msgid "Return to Stock" msgstr "" @@ -6542,59 +6615,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:165 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6865,15 +6938,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6885,47 +6958,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6989,11 +7062,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7035,12 +7108,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7061,19 +7134,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7142,7 +7215,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7654,7 +7727,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7668,6 +7741,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7820,7 +7894,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7869,10 +7943,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7882,12 +7956,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7943,390 +8017,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1851 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2338 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2579 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8342,11 +8416,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8395,34 +8469,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8501,44 +8575,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8547,7 +8621,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8717,381 +8791,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2070 templates/js/translated/part.js:2423 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9175,237 +9277,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1786 -#: templates/js/translated/stock.js:2299 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:2318 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1869 +#: templates/js/translated/part.js:1938 +msgid "Load Subcategories" +msgstr "" + +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1927 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1978 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1979 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2007 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2021 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2046 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2103 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2104 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2218 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2251 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2277 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2347 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2366 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9479,11 +9613,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9499,372 +9633,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/stock.js:2404 +msgid "Load Subloactions" +msgstr "" + +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2441 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2463 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2482 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2501 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2519 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2626 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2713 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2726 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2747 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2751 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2753 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2766 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10162,10 +10300,6 @@ msgstr "" msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - #: templates/js/translated/tables.js:561 msgid "Toggle" msgstr "" @@ -10322,6 +10456,10 @@ msgstr "" msgid "Remove from selected stock items" msgstr "" +#: templates/stock_table.html:46 +msgid "Remove stock" +msgstr "" + #: templates/stock_table.html:47 msgid "Stocktake selected stock items" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 67f055b00d..7370b03181 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "" @@ -25,26 +25,26 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -89,80 +89,84 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "" @@ -229,12 +233,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "" @@ -271,19 +275,19 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "" @@ -292,21 +296,23 @@ msgstr "" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "" @@ -319,7 +325,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -621,7 +627,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po index cdb0d4d84f..a048464cc0 100644 --- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 00:21+0000\n" +"POT-Creation-Date: 2022-08-24 21:34+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "" @@ -26,26 +26,26 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -90,80 +90,84 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:173 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:177 InvenTree/helpers.py:182 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:179 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:187 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:190 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:202 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:207 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:215 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:557 +#: InvenTree/helpers.py:598 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:564 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:605 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:567 +#: InvenTree/helpers.py:608 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:599 +#: InvenTree/helpers.py:640 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:602 +#: InvenTree/helpers.py:643 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:630 +#: InvenTree/helpers.py:671 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:638 +#: InvenTree/helpers.py:679 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:644 +#: InvenTree/helpers.py:685 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:648 +#: InvenTree/helpers.py:689 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/mixins.py:72 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -196,7 +200,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -208,16 +212,16 @@ msgstr "" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "" @@ -230,12 +234,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1636 -#: common/models.py:1637 common/models.py:1860 common/models.py:1861 -#: common/models.py:2123 common/models.py:2124 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2573 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "" @@ -272,19 +276,19 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1846 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1858 templates/js/translated/stock.js:2344 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "" @@ -293,21 +297,23 @@ msgstr "" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1877 -#: templates/js/translated/part.js:1946 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2356 templates/js/translated/stock.js:2410 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "" @@ -320,7 +326,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1883 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -332,7 +338,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "" @@ -517,7 +523,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -538,7 +544,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -622,7 +628,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -725,7 +731,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -744,14 +750,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -759,7 +765,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -768,40 +774,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 templates/InvenTree/search.html:80 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2436 -#: templates/js/translated/stock.js:2631 templates/js/translated/stock.js:2765 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -817,8 +823,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -859,7 +865,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -867,8 +873,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -881,7 +887,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -889,7 +895,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -897,12 +903,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -913,8 +919,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:199 msgid "External Link" msgstr "" @@ -931,80 +937,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:171 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2509 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1668 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1012,42 +1018,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:294 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2091 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2356 -#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2643 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1071,10 +1077,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1087,8 +1093,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1104,7 +1110,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:569 +#: build/serializers.py:278 stock/api.py:577 msgid "The following serial numbers already exist" msgstr "" @@ -1113,17 +1119,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:384 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2450 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1131,13 +1137,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2527 templates/js/translated/stock.js:2659 +#: order/serializers.py:465 stock/templates/stock/item_base.html:417 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1165,117 +1171,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1315,63 +1325,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1379,42 +1397,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:364 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1431,7 +1440,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1444,20 +1453,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:164 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2666 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1477,7 +1486,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1508,7 +1517,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1561,12 +1570,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1580,7 +1589,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1590,15 +1599,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1610,6 +1619,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1759,821 +1772,853 @@ msgstr "" msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:880 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:880 +msgid "Tree Depth" msgstr "" #: common/models.py:881 +msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." +msgstr "" + +#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:891 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:887 +#: common/models.py:897 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:888 +#: common/models.py:898 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:894 +#: common/models.py:904 msgid "IPN Regex" msgstr "" -#: common/models.py:895 +#: common/models.py:905 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:899 +#: common/models.py:909 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:900 +#: common/models.py:910 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:906 +#: common/models.py:916 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:907 +#: common/models.py:917 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:913 +#: common/models.py:923 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:914 +#: common/models.py:924 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:920 +#: common/models.py:930 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:921 +#: common/models.py:931 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:927 +#: common/models.py:937 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:928 +#: common/models.py:938 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:934 +#: common/models.py:944 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:935 +#: common/models.py:945 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:941 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" msgstr "" -#: common/models.py:942 +#: common/models.py:952 msgid "Parts are templates by default" msgstr "" -#: common/models.py:948 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" msgstr "" -#: common/models.py:949 +#: common/models.py:959 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:955 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" -#: common/models.py:956 +#: common/models.py:966 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:962 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" -#: common/models.py:963 +#: common/models.py:973 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:969 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" -#: common/models.py:970 +#: common/models.py:980 msgid "Parts are salable by default" msgstr "" -#: common/models.py:976 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 msgid "Trackable" msgstr "" -#: common/models.py:977 +#: common/models.py:987 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:983 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 msgid "Virtual" msgstr "" -#: common/models.py:984 +#: common/models.py:994 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:990 +#: common/models.py:1000 msgid "Show Import in Views" msgstr "" -#: common/models.py:991 +#: common/models.py:1001 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:997 +#: common/models.py:1007 msgid "Show Price in Forms" msgstr "" -#: common/models.py:998 +#: common/models.py:1008 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1009 +#: common/models.py:1019 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1010 +#: common/models.py:1020 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1021 +#: common/models.py:1031 msgid "Show Price History" msgstr "" -#: common/models.py:1022 +#: common/models.py:1032 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1028 +#: common/models.py:1038 msgid "Show related parts" msgstr "" -#: common/models.py:1029 +#: common/models.py:1039 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1035 +#: common/models.py:1045 msgid "Create initial stock" msgstr "" -#: common/models.py:1036 +#: common/models.py:1046 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1042 +#: common/models.py:1052 msgid "Internal Prices" msgstr "" -#: common/models.py:1043 +#: common/models.py:1053 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1049 +#: common/models.py:1059 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1050 +#: common/models.py:1060 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1056 +#: common/models.py:1066 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1057 +#: common/models.py:1067 msgid "Format to display the part name" msgstr "" -#: common/models.py:1064 +#: common/models.py:1074 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1075 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 msgid "Enable label printing" msgstr "" -#: common/models.py:1065 +#: common/models.py:1081 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1071 +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1072 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1081 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1082 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1088 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1089 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1095 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1096 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1106 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1107 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1113 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1114 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1120 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1121 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1126 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1127 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1133 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1134 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1140 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1141 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1143 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1148 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1149 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1155 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1156 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1162 -msgid "Build Order Reference Pattern" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1163 -msgid "Required pattern for generating Build Order reference field" -msgstr "" - -#: common/models.py:1169 -msgid "Sales Order Reference Pattern" -msgstr "" - -#: common/models.py:1170 -msgid "Required pattern for generating Sales Order reference field" -msgstr "" - -#: common/models.py:1176 -msgid "Sales Order Default Shipment" -msgstr "" - -#: common/models.py:1177 -msgid "Enable creation of default shipment with sales orders" -msgstr "" - -#: common/models.py:1183 -msgid "Purchase Order Reference Pattern" +#: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1184 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1191 -msgid "Enable password forgot" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1192 -msgid "Enable password forgot function on the login pages" +msgid "Required pattern for generating Sales Order reference field" msgstr "" #: common/models.py:1198 -msgid "Enable registration" +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1199 -msgid "Enable self-registration for users on the login pages" +msgid "Enable creation of default shipment with sales orders" msgstr "" #: common/models.py:1205 -msgid "Enable SSO" +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Enable SSO on the login pages" -msgstr "" - -#: common/models.py:1212 -msgid "Email required" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1213 -msgid "Require user to supply mail on signup" +msgid "Enable password forgot" msgstr "" -#: common/models.py:1219 -msgid "Auto-fill SSO users" +#: common/models.py:1214 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1220 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable registration" msgstr "" -#: common/models.py:1226 -msgid "Mail twice" +#: common/models.py:1221 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1227 -msgid "On signup ask users twice for their mail" +msgid "Enable SSO" msgstr "" -#: common/models.py:1233 -msgid "Password twice" +#: common/models.py:1228 +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1234 -msgid "On signup ask users twice for their password" +msgid "Email required" msgstr "" -#: common/models.py:1240 -msgid "Group on signup" +#: common/models.py:1235 +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1241 -msgid "Group to which new users are assigned on registration" +msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1247 -msgid "Enforce MFA" +#: common/models.py:1242 +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1248 -msgid "Users must use multifactor security." +msgid "Mail twice" msgstr "" -#: common/models.py:1254 -msgid "Check plugins on startup" +#: common/models.py:1249 +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1255 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Password twice" +msgstr "" + +#: common/models.py:1256 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1262 +msgid "Group on signup" msgstr "" #: common/models.py:1263 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1269 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1270 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1276 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1277 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1264 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1271 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1272 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1279 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1280 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1287 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1288 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1295 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1296 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1313 common/models.py:1629 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1335 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1336 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1342 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1343 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1349 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1350 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1356 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1357 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1363 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1364 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1370 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1371 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1377 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1378 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1384 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1385 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1391 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1392 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1398 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1399 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1405 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1406 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1412 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1413 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1419 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1420 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1426 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1427 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1433 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1434 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1440 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1441 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1447 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1448 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1454 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1455 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1461 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1462 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1468 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1469 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1475 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1476 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1482 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1483 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1489 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1490 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1496 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1497 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1503 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1504 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1510 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1517 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1518 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1524 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1525 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1531 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1532 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1538 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1539 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1545 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1546 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1552 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1553 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1559 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1560 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1566 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1567 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1573 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1574 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1580 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1581 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1587 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1588 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1594 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1595 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1609 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1610 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1669 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1676 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2096 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1677 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1837 common/models.py:2015 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1838 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1847 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1852 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2581,67 +2626,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1853 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1867 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1868 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1875 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1876 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1982 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1983 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1991 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:1992 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1999 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2000 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2006 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2007 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2021 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2022 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2748,7 +2793,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2781,8 +2826,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2790,9 +2835,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:142 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2803,7 +2848,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:206 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2821,8 +2866,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2841,7 +2886,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:216 msgid "Manufacturer Part" msgstr "" @@ -2851,9 +2896,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2861,10 +2906,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2878,13 +2923,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:223 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2895,8 +2940,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2917,23 +2962,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:239 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2941,7 +2986,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2952,9 +2997,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2990,7 +3035,7 @@ msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3027,12 +3072,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:395 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2491 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3057,7 +3102,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:118 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3067,13 +3112,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3088,7 +3133,7 @@ msgid "Delete Parts" msgstr "" #: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3096,7 +3141,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3110,10 +3155,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3133,10 +3178,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3152,7 +3197,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,7 +3213,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3199,14 +3244,14 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3214,14 +3259,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3230,7 +3275,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3251,10 +3296,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:232 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3265,7 +3310,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3298,13 +3343,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3320,7 +3365,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2168 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3329,12 +3374,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2178 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2192 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3356,14 +3401,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:151 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3382,14 +3426,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2368 users/models.py:40 +#: templates/InvenTree/search.html:153 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3410,7 +3454,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3483,6 +3527,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3515,8 +3563,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3573,7 +3621,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3635,7 +3683,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3643,11 +3691,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:178 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2472 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3655,9 +3703,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3666,9 +3714,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:185 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3842,11 +3890,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3956,77 +4004,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4053,11 +4101,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4092,7 +4140,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4138,7 +4186,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4152,7 +4200,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4176,8 +4224,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4207,52 +4255,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:505 +#: part/api.py:514 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:525 +#: part/api.py:534 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:543 +#: part/api.py:552 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:575 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:695 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:696 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:702 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1125 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1129 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1144 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1175 part/api.py:1179 part/api.py:1194 part/api.py:1198 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4261,14 +4309,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4289,516 +4337,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1890 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1941 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:1950 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:1958 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:1965 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4830,7 +4890,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4838,101 +4898,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4940,7 +5000,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4968,138 +5028,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:558 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5162,19 +5230,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5183,8 +5251,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5245,7 +5313,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5266,22 +5334,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:371 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5294,7 +5362,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:327 msgid "Search for serial number" msgstr "" @@ -5333,7 +5401,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5368,6 +5436,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5416,7 +5496,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5454,8 +5534,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5509,11 +5589,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5620,51 +5700,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5736,12 +5820,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5842,12 +5926,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:316 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5856,22 +5940,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2400 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5886,327 +5963,327 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2649 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" -#: stock/api.py:521 +#: stock/api.py:529 msgid "Quantity is required" msgstr "" -#: stock/api.py:528 +#: stock/api.py:536 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:553 +#: stock/api.py:561 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:246 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:423 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6303,7 +6380,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2793 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6311,7 +6388,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6342,195 +6419,191 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 -msgid "Remove stock" -msgstr "" - -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:85 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:101 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:101 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:157 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:192 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:210 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:250 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:265 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:278 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:286 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:294 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:300 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:322 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:322 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:331 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:331 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:344 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:388 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:403 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:427 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:427 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:429 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:429 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:436 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:441 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:445 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:515 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:588 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:591 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:592 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:600 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:628 msgid "Return to Stock" msgstr "" @@ -6542,59 +6615,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:165 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6865,15 +6938,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6885,47 +6958,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6989,11 +7062,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7035,12 +7108,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7061,19 +7134,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7142,7 +7215,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7654,7 +7727,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7668,6 +7741,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7820,7 +7894,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7869,10 +7943,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7882,12 +7956,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7943,390 +8017,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1851 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2338 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2579 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8342,11 +8416,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8395,34 +8469,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8501,44 +8575,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8547,7 +8621,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8717,381 +8791,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2070 templates/js/translated/part.js:2423 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9175,237 +9277,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1786 -#: templates/js/translated/stock.js:2299 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:2318 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1869 +#: templates/js/translated/part.js:1938 +msgid "Load Subcategories" +msgstr "" + +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1927 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1978 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1979 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2007 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2021 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2046 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2103 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2104 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2218 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2251 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2277 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2347 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2366 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9479,11 +9613,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9499,372 +9633,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/stock.js:2404 +msgid "Load Subloactions" +msgstr "" + +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2441 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2463 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2482 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2501 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2519 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2626 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2713 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2726 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2747 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2751 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2753 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2766 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10162,10 +10300,6 @@ msgstr "" msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - #: templates/js/translated/tables.js:561 msgid "Toggle" msgstr "" @@ -10322,6 +10456,10 @@ msgstr "" msgid "Remove from selected stock items" msgstr "" +#: templates/stock_table.html:46 +msgid "Remove stock" +msgstr "" + #: templates/stock_table.html:47 msgid "Stocktake selected stock items" msgstr "" diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po index 68130700a0..2f8ab5c91c 100644 --- a/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:54\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "Address e API peida nashod" @@ -25,26 +25,26 @@ msgstr "Address e API peida nashod" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -89,80 +89,84 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "" @@ -229,12 +233,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "" @@ -271,19 +275,19 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "" @@ -292,21 +296,23 @@ msgstr "" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "" @@ -319,7 +325,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -621,7 +627,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 876efcc362..6b5c53c970 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:54\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "Point de terminaison de l'API introuvable" @@ -25,26 +25,26 @@ msgstr "Point de terminaison de l'API introuvable" msgid "Error details can be found in the admin panel" msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'administration" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Entrer la date" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Notes" @@ -89,80 +89,84 @@ msgstr "Confirmation de l'adresse email" msgid "You must type the same email each time." msgstr "Vous devez taper le même e-mail à chaque fois." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Dupliquer le numéro : {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Chaîne de numéro de série vide" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Plage de groupe invalide : {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Groupe invalide : {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Séquence de groupe invalide : {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Invalide/aucun groupe {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Aucun numéro de série trouvé" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "Modèle mal formaté" @@ -195,7 +199,7 @@ msgstr "Fichier manquant" msgid "Missing external link" msgstr "Lien externe manquant" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Sélectionnez un fichier à joindre" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Lien" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Lien vers une url externe" @@ -229,12 +233,12 @@ msgstr "Commentaire" msgid "File comment" msgstr "Commentaire du fichier" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Utilisateur" @@ -271,19 +275,19 @@ msgstr "Erreur lors du renommage du fichier" msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Nom" @@ -292,21 +296,23 @@ msgstr "Nom" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Description" @@ -319,7 +325,7 @@ msgid "parent" msgstr "parent" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "Chemin d'accès" @@ -331,7 +337,7 @@ msgstr "Erreur serveur" msgid "An error has been logged by the server." msgstr "Une erreur a été enregistrée par le serveur." -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Doit être un nombre valide" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Placé" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Terminé" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "Retourné" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Expédié" @@ -621,7 +627,7 @@ msgstr "Séparer de l'élément parent" msgid "Split child item" msgstr "Fractionner l'élément enfant" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Articles de stock fusionnés" @@ -687,27 +693,27 @@ msgstr "Le surplus ne doit pas dépasser 100%" msgid "Invalid value for overage" msgstr "Valeur invalide pour le dépassement" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Modifier les informations utilisateur" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Définir le mot de passe" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Les mots de passe doivent correspondre" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "Mot de passe incorrect" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Informations système" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "À propos d'InvenTree" @@ -724,7 +730,7 @@ msgstr "Choix invalide pour la fabrication parente" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Ordre de Fabrication" @@ -733,7 +739,7 @@ msgstr "Ordre de Fabrication" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Ordres de Fabrication" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Référence" @@ -758,7 +764,7 @@ msgstr "Référence" msgid "Brief description of the build" msgstr "Brève description de la fabrication" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Fabrication parente" @@ -767,40 +773,40 @@ msgstr "Fabrication parente" msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder associé a cette fabrication" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Pièce" @@ -816,8 +822,8 @@ msgstr "Bon de commande de référence" msgid "SalesOrder to which this build is allocated" msgstr "Commande de vente à laquelle cette construction est allouée" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "Emplacement d'origine" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "Code de statut de construction" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "Code de lot" @@ -866,8 +872,8 @@ msgstr "Code de lot" msgid "Batch code for this build output" msgstr "Code de lot pour ce build output" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Date de création" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date." #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Date d'achèvement" @@ -888,7 +894,7 @@ msgstr "Date d'achèvement" msgid "completed by" msgstr "achevé par" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "Émis par" @@ -896,12 +902,12 @@ msgstr "Émis par" msgid "User who issued this build order" msgstr "Utilisateur ayant émis cette commande de construction" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Responsable" @@ -912,8 +918,8 @@ msgstr "Utilisateur responsable de cette commande de construction" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Lien Externe" @@ -930,80 +936,80 @@ msgstr "La commande {build} a été effectuée" msgid "A build order has been completed" msgstr "La commande a été effectuée" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "Pas d'ordre de production défini" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "L'ordre de production a déjà été réalisé" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "L'ordre de production de correspond pas à l'ordre de commande" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "La quantité doit être de 1 pour stock sérialisé" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "L'article du stock sélectionné n'a pas été trouvé dans la BOM" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Assemblage" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "Construction à laquelle allouer des pièces" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Article en stock" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "Stock d'origine de l'article" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "Stock d'origine de l'article" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Quantité" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "Quantité de stock à allouer à la construction" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "Installer dans" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "Stock de destination de l'article" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "Sortie d'assemblage" @@ -1070,10 +1076,10 @@ msgstr "Cet ordre de production n'est pas complètement attribué" msgid "Enter quantity for build output" msgstr "Entrer la quantité désiré pour la fabrication" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "Quantité entière requise, car la facture de matériaux contient des pièces à puce" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Numéros de série" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "Une liste d'ordre de production doit être fourni" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Emplacement" @@ -1130,13 +1136,13 @@ msgstr "Emplacement" msgid "Location for completed build outputs" msgstr "Emplacement des ordres de production achevés" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "État" @@ -1164,117 +1170,121 @@ msgstr "Supprimer les sorties incomplètes" msgid "Delete any build outputs which have not been completed" msgstr "Supprimer toutes les sorties de construction qui n'ont pas été complétées" -#: build/serializers.py:480 -msgid "Accept Overallocated" -msgstr "Accepter la surallocation" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" +msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" -msgstr "Accepter les articles en stock qui ont été suralloués à cette commande de construction" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" +msgstr "" -#: build/serializers.py:491 +#: build/serializers.py:494 +msgid "Overallocated Stock" +msgstr "" + +#: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 msgid "Some stock items have been overallocated" msgstr "Certains articles en stock ont été suralloués" -#: build/serializers.py:496 +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "Accepter les non-alloués" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepter les articles de stock qui n'ont pas été complètement alloués à cette ordre de production" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "Le stock requis n'a pas encore été totalement alloué" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "Accepter les incomplèts" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accepter que tous les ordres de production n'aient pas encore été achevés" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "La quantité nécessaire n'a pas encore été complétée" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "L'ordre de production a des sorties incomplètes" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "Aucune sortie de construction n'a été créée pour cet ordre de construction" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "Article de la nomenclature" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "Sortie d'assemblage" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "La sortie de la construction doit pointer vers la même version" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part doit pointer sur la même pièce que l'ordre de construction" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "L'article doit être en stock" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantité disponible ({q}) dépassée" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "La sortie de construction doit être spécifiée pour l'allocation des pièces tracées" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "La sortie de la compilation ne peut pas être spécifiée pour l'allocation des pièces non suivies" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "Cet article de stock a déjà été alloué à cette sortie de construction" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "Les éléments d'allocation doivent être fournis" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Emplacement de stock où les pièces doivent être fournies (laisser vide pour les prendre à partir de n'importe quel endroit)" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "Emplacements exclus" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "Exclure les articles en stock de cet emplacement sélectionné" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "Stock interchangeable" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Les articles en stock à plusieurs emplacements peuvent être utilisés de manière interchangeable" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "Stock de substitution" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "Autoriser l'allocation des pièces de remplacement" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "Annuler l'assemblage" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "Supprimer l'assemblage" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "Compléter l'assemblage" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "Description de la construction" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "Aucune sortie de construction n'a été créée pour cet ordre de construction" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Cet ordre de construction est allouée à la commande de vente %(link)s" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Cet ordre de construction est un enfant de l'ordre de construction %(link)s" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "L'ordre de construction est prêt à être marqué comme terminé" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "L'ordre de construction ne peut pas être achevé car il reste des outputs en suspens" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "Le nombre de constructions requis n'a pas encore été atteint" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Date Cible" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "Cette construction était due le %(target)s" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "Cette construction était due le %(target)s" msgid "Overdue" msgstr "En retard" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Terminé" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Commandes" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Émis par" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "Sorties incomplètes" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "L'ordre de fabrication ne peut pas être achevé car il reste des outputs en suspens" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "Supprimer l'ordre de construction" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible." #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Destination" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "Pièces allouées" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "Lot" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Créé le" @@ -1476,7 +1485,7 @@ msgstr "Commandes filles" msgid "Allocate Stock to Build" msgstr "Allouer le stock à la commande" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "Désallouer le stock" @@ -1507,7 +1516,7 @@ msgstr "Commander les pièces requises" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Commander des pièces" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "Supprimer les sorties" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Actions d'impression" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "Imprimer les étiquettes" @@ -1579,7 +1588,7 @@ msgstr "Sorties de Construction terminées" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "Pieces jointes" msgid "Build Notes" msgstr "Notes de construction" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "Allocation terminée" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "Tous les articles de stock non suivis ont été alloués" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "Nouvel ordre de construction" @@ -1609,6 +1618,10 @@ msgstr "Imprimer les commandes de construction" msgid "Build Order Details" msgstr "Détails de la commande de construction" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "Sorties incomplètes" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "Sorties de Construction terminées" @@ -1838,7 +1851,7 @@ msgstr "Copier les templates de paramètres de catégorie" msgid "Copy category parameter templates when creating a part" msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "Modèle" msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "Assemblage" msgid "Parts can be assembled from other components by default" msgstr "Les composantes peuvent être assemblées à partir d'autres composants par défaut" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "Composant" @@ -1867,7 +1880,7 @@ msgstr "Composant" msgid "Parts can be used as sub-components by default" msgstr "Les composantes peuvent être utilisées comme sous-composants par défaut" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "Achetable" @@ -1875,7 +1888,7 @@ msgstr "Achetable" msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "Vendable" @@ -1884,7 +1897,7 @@ msgstr "Vendable" msgid "Parts are salable by default" msgstr "Les pièces sont vendables par défaut" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "Traçable" msgid "Parts are trackable by default" msgstr "Les pièces sont traçables par défaut" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "Format pour afficher le nom de la pièce" #: common/models.py:1074 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1075 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 msgid "Enable label printing" msgstr "Activer l'impression d'étiquettes" -#: common/models.py:1075 +#: common/models.py:1081 msgid "Enable label printing from the web interface" msgstr "Activer l'impression d'étiquettes depuis l'interface Web" -#: common/models.py:1081 +#: common/models.py:1087 msgid "Label Image DPI" msgstr "Étiquette image DPI" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Résolution DPI lors de la génération de fichiers image pour fournir aux plugins d'impression d'étiquettes" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "Activer les rapports" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "Activer la génération de rapports" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "Mode Débogage" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "Générer des rapports en mode debug (sortie HTML)" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "Taille de la page" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "Taille de page par défaut pour les rapports PDF" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "Activer les rapports de test" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "Activer la génération de rapports de test" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "Joindre des rapports de test" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Lors de l'impression d'un rapport de test, joignez une copie du rapport de test à l'article en stock associé" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "Modèle de code de lot" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "Modèle pour générer des codes par défaut pour les articles en stock" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "Expiration du stock" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "Activer la fonctionnalité d'expiration du stock" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "Vendre le stock expiré" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "Autoriser la vente de stock expiré" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "jours" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "Activer les mots de passe oubliés" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "Activer les inscriptions" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "Activer le SSO" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "Activer le SSO sur les pages de connexion" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "Email requis" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "Saisie automatique des utilisateurs SSO" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "Courriel en double" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "Activer l'intégration de plugins" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "Activer l'intégration de plugin pour ajouter des apps" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "Afficher le stock épuisé" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "Afficher les stocks épuisés sur la page d'accueil" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "Afficher le stock nécessaire" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "Format préféré pour l'affichage des dates" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "Prix" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "Actif" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "Point de contact" msgid "Link to external company information" msgstr "Lien externe vers les informations de l'entreprise" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "Cette entreprise fabrique-t-elle des pièces?" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "Devise" @@ -2797,9 +2834,9 @@ msgstr "Devise" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "Sélectionner un fabricant" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "Valeur" @@ -2868,10 +2905,10 @@ msgstr "Valeur" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "Fournisseur" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "coût de base" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "Commande multiple" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "Disponible" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "Créer une commande d'achat" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "Télécharger l'image depuis l'URL" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "Commander des composants" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "Commandes d'achat" @@ -3140,10 +3177,10 @@ msgstr "Nouvelle commande achat" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "Ventes" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "Nouvelle commande de vente" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "Stock affecté" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "Liste des Fournisseurs" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "Fabricants" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "Fournisseurs" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "Supprimer les pièces du fournisseur" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "Supprimer" @@ -3221,14 +3258,14 @@ msgstr "Supprimer" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Paramètres" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "Nouveau paramètre" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "Commander un composant" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "Information sur les prix" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "Tarif" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "Éléments en stock" @@ -3408,7 +3444,7 @@ msgstr "Nouveau Fournisseur" msgid "New Manufacturer" msgstr "Nouveau Fabricant" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "Clients" @@ -3417,7 +3453,7 @@ msgstr "Clients" msgid "New Customer" msgstr "Nouveaux Clients" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "Entreprises" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "Description de la commande" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "Nom de l’expédition" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "Commande" @@ -3650,11 +3690,11 @@ msgstr "Commande" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "Commande d’achat" @@ -3662,9 +3702,9 @@ msgstr "Commande d’achat" msgid "Supplier part" msgstr "Pièce fournisseur" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "Reçu" @@ -3673,9 +3713,9 @@ msgstr "Reçu" msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "Prix d'achat" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "Entrez les numéros de série pour les articles de stock entrants" @@ -3963,77 +4003,77 @@ msgstr "Modifier la commande" msgid "Cancel order" msgstr "Annuler la commande" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "Passer la commande" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "Recevoir objet" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Réception d'articles" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "Marquer la commande comme complète" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "Finaliser la commande" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "Référence de commande" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "Description de la commande" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "Statut de la commande" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "Incomplet" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Supprimer la ligne" @@ -4099,7 +4139,7 @@ msgstr "Articles de la commande d'achat" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "Expéditions en attente" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "En Commande" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Catégorie de composant" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "Catégories de composants" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "Composantes" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "Les prochains numéros de série disponibles sont" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "Le prochain numéro de série disponible est" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "Le numéro de série le plus récent est" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "Description du composant" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "Catégorie" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "Révision" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "Requis" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "Données" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "ID de composant" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Surplus" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "Devise d'achat de l'item" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "Supprimer l'élément" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "Modifier la catégorie" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "Modifier la catégorie" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "Supprimer la catégorie" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "Supprimer la catégorie" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "Nouvelle catégorie" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "Composantes (incluant sous-catégories)" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "Composant créé avec succès" @@ -4947,7 +4999,7 @@ msgstr "Composant créé avec succès" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" +msgstr "Actualiser" + +#: part/templates/part/detail.html:59 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:59 +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "Fabricants de composants" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "Impression étiquette" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "Dernier numéro de série" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "Rechercher un numéro de série" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "Afficher le prix de vente" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "Non du Plugin" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Aucun objet valide n'a été fourni au modèle" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "Numéro de série" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "Résultat" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Propriétaire" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "Sélectionner un propriétaire" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "Il existe déjà un article en stock avec ce numéro de série" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantité doit être de 1 pour un article avec un numéro de série" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "Numéro de série pour cet article" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "Les numéros de série doivent être une liste de nombres entiers" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "La quantité ne correspond pas au nombre de numéros de série" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Les numéros de série existent déja : {exists}" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "Entrez le nombre d'articles en stock à sérialiser" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "Entrez les numéros de série pour les nouveaux articles" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "Les numéros de série existent déjà" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Cet article de stock est sérialisé - il a un numéro de série unique et la quantité ne peut pas être ajustée." -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "page précédente" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "Accéder au numéro de série précédent" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "Accéder au numéro de série suivant" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "Sélectionner la quantité à sérialiser et les numéros de série uniques." -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "Hash du commit" msgid "Commit Message" msgstr "Message du commit" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "Statut de la signature" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "Clé de signature" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "Quantité requise" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "Ceci supprimera l'association entre cet article de stock et le code-barr msgid "Unlink" msgstr "Délier" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "Supprimer l'article de stock" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "Données de la rangée" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "Télécharger le template de la BOM" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "Sélectionner un format de fichier" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "Êtes-vous sûr de vouloir annuler cette construction?" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "Prochain numéro de série disponible" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "Dernier numéro de série" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "La BOM contient des pièces traçables" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "Les pièces traçables peuvent avoir des numéros de série spécifiés" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "Commander des stocks" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "Pas d'informations sur l'utilisateur" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "Référence de commande" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "Commandé" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "Commande en retard" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "Livré au client" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "Allouer des numéros de série" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "Acheter du stock" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "Calculer le prix" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "Allouer des numéros de série" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "Modifier la pièce" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "Pièce modifiée" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "Créer une variante de pièce" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "Stock bas" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "Pièce traçable" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "Pièce virtuelle" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "Pièce vendable" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "Aucune variante trouvée" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "Aucune pièce trouvée" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "Aucune catégorie" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "Afficher sous forme de liste" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "Afficher sous forme de grille" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "Afficher sous forme d'arborescence" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "Modifier le résultat du test" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "Supprimer le résultat du test" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "Trouver un numéro de série" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "Entrer le numéro de série" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "Entrer un numéro de série" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "Aucun numéro de série correspondant" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "Plus d'un résultat correspondant trouvé" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "Confirmer l'assignation de stock" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "Assigner le stock au client" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "Attention : l'opération de fusion est irréversible" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "Certaines informations seront perdues lors de la fusion des articles en stock" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "L'historique des transactions de stock sera supprimé pour les éléments fusionnés" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "Les informations sur la pièce du fournisseur seront supprimées pour les éléments fusionnés" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "Confirmer la fusion de l'article en stock" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "Fusionner les articles en stock" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "Transférer le stock" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "Transférer" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "Compter le stock" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "Compter" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "Supprimer du stock" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "Supprimer" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "Ajouter du stock" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "Ajouter" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "Supprimer le stock" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "La quantité ne peut pas être ajustée pour un stock sérialisé" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "Spécifiez la quantité du stock" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "Vous devez sélectionner au moins un article en stock disponible" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "RÉUSSI" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "ÉCHEC" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "AUCUN RÉSULTAT" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "Ajouter un résultat de test" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "Aucun résultat de test trouvé" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "Date du test" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "En production" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "Article en stock installé dans un autre article en stock" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "Assigné à une commande de vente" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "Aucun emplacement de stock défini" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "L'article de stock est en production" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "L'article en stock a été assigné à une commande de vente" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "L'article en stock a été assigné à un client" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "L'article de stock sérialisé a été alloué" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "L'article de stock a été complètement alloué" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "L'article de stock a été partiellement alloué" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "L'article en stock a été installé dans un autre article" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "L'article en stock a expiré" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "L'article en stock va bientôt expirer" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "L'article de stock a été rejeté" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "L'article de stock est perdu" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "L'article de stock est détruit" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "Epuisé" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "Prise d'inventaire" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "Pièce de fournisseur non précisée" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "Aucun article de stock ne correspond à la requête" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "Définir l'état du stock" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "Sélectionner le code de statut" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "Le code de statut doit être sélectionné" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "Détails" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "L'emplacement n'existe plus" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "La commande d'achat n'existe plus" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "Le client n'existe plus" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "L'article de stock n'existe plus" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "Ajouté" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "Supprimé" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "Chargement des données" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "résultats par page" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "Afficher toutes les lignes" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "Afficher" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "à" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "de" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "lignes" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Rechercher" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "Aucun résultat correspondant n'a été trouvé" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "Masquer/Afficher la pagination" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "Actualiser" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "Colonnes" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "Tout" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 98eb280e2b..73eb64ca60 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "" @@ -25,26 +25,26 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "הזן תאריך סיום" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -89,80 +89,84 @@ msgstr "אישור כתובת אימייל" msgid "You must type the same email each time." msgstr "חובה לרשום את אותו אימייל בכל פעם." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "קבוצה שגויה: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "קבוצה שגויה / לא נמצאה {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "מספרים סידוריים לא נמצאו" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "קובץ חסר" msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "בחר קובץ לצירוף" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "קישור" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "קישור חיצוני" @@ -229,12 +233,12 @@ msgstr "הערה" msgid "File comment" msgstr "הערת קובץ" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "משתמש" @@ -271,19 +275,19 @@ msgstr "שגיאה בשינוי שם פריט" msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "שם" @@ -292,21 +296,23 @@ msgstr "שם" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "תיאור" @@ -319,7 +325,7 @@ msgid "parent" msgstr "מקור" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "מוקם" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "הושלם" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "הוחזר" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "נשלח" @@ -621,7 +627,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "ערוך מידע אודות המשתמש" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "הגדר סיסמא" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "הסיסמאות מוכרחות להיות תואמות" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "מידע אודות המערכת" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "מקט" @@ -758,7 +764,7 @@ msgstr "מקט" msgid "Brief description of the build" msgstr "תיאור קצר אודות הבנייה" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "מקור הבנייה" @@ -767,40 +773,40 @@ msgstr "מקור הבנייה" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "רכיב" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "כמות" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "מספרים סידוריים" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index 33856d83cc..d217f9ed92 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "API funkciót nem találom" @@ -25,26 +25,26 @@ msgstr "API funkciót nem találom" msgid "Error details can be found in the admin panel" msgstr "A hiba részleteit megtalálod az admin panelen" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Dátum megadása" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Megjegyzések" @@ -89,80 +89,84 @@ msgstr "Email cím megerősítés" msgid "You must type the same email each time." msgstr "Mindig ugyanazt az email címet kell beírni." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "Csatlakozási hiba" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "Kivétel történt" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "A kiszolgáló érvénytelen Content-Length értéket adott" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "A kép mérete túl nagy" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "A kép letöltés meghaladja a maximális méretet" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "A kiszolgáló üres választ adott" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Duplikált sorozatszám: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Nem megfelelő mennyiség" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Üres sorozatszám" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Érvénytelen csoport tartomány: {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Érvénytelen csoport: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Érvénytelen csoport szekvencia: {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Érvénytelen vagy nemlétező csoport {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Nem található sorozatszám" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "A megadott számú egyedi sorozatszám ({s}) meg kell egyezzen a darabszámmal ({q})" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "HTML tag-ek eltávolítása ebből az értékből" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "Helytelenül formázott minta" @@ -195,7 +199,7 @@ msgstr "Hiányzó fájl" msgid "Missing external link" msgstr "Hiányzó külső link" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Válaszd ki a mellekelni kívánt fájlt" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Link" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Link külső URL-re" @@ -229,12 +233,12 @@ msgstr "Megjegyzés" msgid "File comment" msgstr "Leírás, bővebb infó" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Felhasználó" @@ -271,19 +275,19 @@ msgstr "Hiba a fájl átnevezésekor" msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Név" @@ -292,21 +296,23 @@ msgstr "Név" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Leírás" @@ -319,7 +325,7 @@ msgid "parent" msgstr "szülő" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "Elérési út" @@ -331,7 +337,7 @@ msgstr "Kiszolgálóhiba" msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Kiküldve" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Kész" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "Visszaküldve" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Kiszállítva" @@ -621,7 +627,7 @@ msgstr "Szülő tételből szétválasztva" msgid "Split child item" msgstr "Szétválasztott gyermek tétel" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Összevont készlet tétel" @@ -687,27 +693,27 @@ msgstr "Túlszállítás nem lehet több mint 100%" msgid "Invalid value for overage" msgstr "Érvénytelen érték a túlszállításra" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Felhasználói információ módosítása" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Jelszó beállítása" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "A jelszavaknak egyeznie kell" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "Rossz jelszó lett megadva" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Rendszerinformáció" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "Verzió információk" @@ -724,7 +730,7 @@ msgstr "Hibás választás a szülő gyártásra" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Gyártási utasítás" @@ -733,7 +739,7 @@ msgstr "Gyártási utasítás" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Gyártási utasítások" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Azonosító" @@ -758,7 +764,7 @@ msgstr "Azonosító" msgid "Brief description of the build" msgstr "Gyártás rövid leírása" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Szülő gyártás" @@ -767,40 +773,40 @@ msgstr "Szülő gyártás" msgid "BuildOrder to which this build is allocated" msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Alkatrész" @@ -816,8 +822,8 @@ msgstr "Vevői rendelés azonosító" msgid "SalesOrder to which this build is allocated" msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "Forrás hely" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "Gyártás státusz kód" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "Batch kód" @@ -866,8 +872,8 @@ msgstr "Batch kód" msgid "Batch code for this build output" msgstr "Batch kód a gyártás kimenetéhez" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Létrehozás dátuma" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd." #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Elkészítés dátuma" @@ -888,7 +894,7 @@ msgstr "Elkészítés dátuma" msgid "completed by" msgstr "elkészítette" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "Kiállította" @@ -896,12 +902,12 @@ msgstr "Kiállította" msgid "User who issued this build order" msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Felelős" @@ -912,8 +918,8 @@ msgstr "Felhasználó aki felelős ezért a gyártási utasításért" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Külső link" @@ -930,80 +936,80 @@ msgstr "A {build} gyártási utasítás elkészült" msgid "A build order has been completed" msgstr "Gyártási utasítás elkészült" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "Nincs gyártási kimenet megadva" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "Gyártási kimenet már kész" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "Készlet túlfoglalva" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "Kiválasztott készlet tétel nem található az alkatrészjegyzékben" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Gyártás" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "Gyártás amihez készletet foglaljunk" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Készlet tétel" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "Forrás készlet tétel" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "Forrás készlet tétel" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Mennyiség" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "Beépítés ebbe" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "Cél készlet tétel" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "Gyártás kimenet" @@ -1070,10 +1076,10 @@ msgstr "Ez a gyártási kimenet nincs teljesen lefoglalva" msgid "Enter quantity for build output" msgstr "Add meg a mennyiséget a gyártás kimenetéhez" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyedi követésre kötelezett alkatrészeket tartalmaz" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Sorozatszámok" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "A gyártási kimenetek listáját meg kell adni" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Hely" @@ -1130,13 +1136,13 @@ msgstr "Hely" msgid "Location for completed build outputs" msgstr "A kész gyártási kimenetek helye" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "Állapot" @@ -1165,117 +1171,121 @@ msgstr "Befejezetlen kimenetek törlése" msgid "Delete any build outputs which have not been completed" msgstr "A nem befejezett gyártási kimenetek törlése" -#: build/serializers.py:480 -msgid "Accept Overallocated" -msgstr "Túlfoglaltak elfogadása" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" +msgstr "Gyártásban fel lett használva" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" -msgstr "Túlfoglalt készlet tételek elfogadása ehhez a gyártáshoz" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" +msgstr "Foglalás felszabadítása a készre jelentés előtt" -#: build/serializers.py:491 +#: build/serializers.py:494 +msgid "Overallocated Stock" +msgstr "Túlfoglalt készlet" + +#: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "Hogyyan kezeljük az gyártáshoz rendelt extra készletet" + +#: build/serializers.py:506 msgid "Some stock items have been overallocated" msgstr "Pár készlet tétel túl lett foglalva" -#: build/serializers.py:496 +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "Kiosztatlanok elfogadása" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Fogadd el hogy a készlet tételek nincsenek teljesen lefoglalva ehhez a gyártási utastáshoz" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "A szükséges készlet nem lett teljesen lefoglalva" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "Befejezetlenek elfogadása" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "Fogadd el hogy a szükséges számú gyártási kimenet nem lett elérve" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "Szükséges gyártási mennyiség nem lett elérve" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "Ehhez a gyártási utasításhoz nem készült kimenet" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "Gyártás kimenet" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "A gyártási kimenetnek ugyanarra a gyártásra kell mutatnia" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part ugyanarra az alkatrészre kell mutasson mint a gyártási utasítás" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "A tételnek kell legyen készlete" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Rendelkezésre álló mennyiség ({q}) túllépve" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "Gyártási kimenetet meg kell adni a követésre kötelezett alkatrészek lefoglalásához" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatrészek lefoglalásához" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "Ez a készlet tétel már le lett foglalva ehhez a gyártási kimenethez" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "A lefoglalandó tételeket meg kell adni" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Készlet hely ahonnan az alkatrészek származnak (hagyd üresen ha bárhonnan)" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "Hely kizárása" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "Készlet tételek kizárása erről a kiválasztott helyről" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "Felcserélhető készlet" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "A különböző helyeken lévő készlet egyenrangúan felhasználható" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "Készlet helyettesítés" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "Helyettesítő alkatrészek foglalásának engedélyezése" @@ -1315,63 +1325,71 @@ msgid "Cancel Build" msgstr "Gyártás törlése" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "Gyártás másolása" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "Gyártás törlése" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "Gyártás befejezése" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "Gyártás leírása" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "Ehhez a gyártási utasításhoz nem készült kimenet" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Ez a gyártási utasítás hozzátendelve a %(link)s vevői rendeléshez" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Ez gyártási utasítás a %(link)s gyártási utasítás gyermeke" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "Gyártási utasítás elkészültnek jelölhető" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Befejezetlen gyártási kimenetek vannak" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "Szükséges gyártási mennyiség még nincs meg" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "Még nincs lefoglalva a szükséges készlet" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Cél dátum" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "Ez a gyártás %(target)s-n volt esedékes" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1379,42 +1397,33 @@ msgstr "Ez a gyártás %(target)s-n volt esedékes" msgid "Overdue" msgstr "Késésben" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Kész" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Vevői rendelés" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Kiállította" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "Befejezetlen kimenetek" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "Gyártási utasítás nem teljesíthető mivel befejezetlen kimenetek maradnak" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "Gyártási utasítás törlése" @@ -1431,7 +1440,7 @@ msgid "Stock can be taken from any available location." msgstr "Készlet bármely rendelkezésre álló helyről felhasználható." #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Cél" @@ -1444,20 +1453,20 @@ msgid "Allocated Parts" msgstr "Lefoglalt alkatrészek" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "Batch" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Létrehozva" @@ -1477,7 +1486,7 @@ msgstr "Alárendelt gyártások" msgid "Allocate Stock to Build" msgstr "Készlet foglalása gyártáshoz" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "Készlet felszabadítása" @@ -1508,7 +1517,7 @@ msgstr "Szükséges alkatrészek rendelése" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Alkatrész rendelés" @@ -1561,12 +1570,12 @@ msgid "Delete outputs" msgstr "Kimenetek törlése" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Nyomtatási műveletek" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "Címke nyomtatása" @@ -1580,7 +1589,7 @@ msgstr "Befejezett gyártási kimenetek" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1590,15 +1599,15 @@ msgstr "Mellékletek" msgid "Build Notes" msgstr "Gyártási megjegyzések" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "Lefoglalás kész" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "Az összes nem követett készlet lefoglalásra került" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "Új gyártási utasítás" @@ -1610,6 +1619,10 @@ msgstr "Gyártási utasítások nyomtatása" msgid "Build Order Details" msgstr "Gyártási utasítás részletei" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "Befejezetlen kimenetek" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "Befejezett kimenetek" @@ -1761,11 +1774,11 @@ msgstr "Kérjen felhasználói megerősítést bizonyos műveletekhez" #: common/models.py:880 msgid "Tree Depth" -msgstr "" +msgstr "Fa mélység" #: common/models.py:881 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." -msgstr "" +msgstr "Alapértelmezett mélység a fa nézetekben. A mélyebb szintek betöltődnek ha szükségesek." #: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" @@ -1839,7 +1852,7 @@ msgstr "Kategória paraméter sablonok másolása" msgid "Copy category parameter templates when creating a part" msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1849,7 +1862,7 @@ msgstr "Sablon" msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1859,7 +1872,7 @@ msgstr "Gyártmány" msgid "Parts can be assembled from other components by default" msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "Összetevő" @@ -1868,7 +1881,7 @@ msgstr "Összetevő" msgid "Parts can be used as sub-components by default" msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "Beszerezhető" @@ -1876,7 +1889,7 @@ msgstr "Beszerezhető" msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "Értékesíthető" @@ -1885,7 +1898,7 @@ msgstr "Értékesíthető" msgid "Parts are salable by default" msgstr "Alkatrészek alapból eladhatók legyenek" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1896,7 +1909,7 @@ msgstr "Követésre kötelezett" msgid "Parts are trackable by default" msgstr "Alkatrészek alapból követésre kötelezettek legyenek" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1980,608 +1993,632 @@ msgid "Format to display the part name" msgstr "Formátum az alkatrész név megjelenítéséhez" #: common/models.py:1074 +msgid "Part Category Default Icon" +msgstr "Alkatrész kategória alapértelmezett ikon" + +#: common/models.py:1075 +msgid "Part category default icon (empty means no icon)" +msgstr "Alkatrész kategória alapértelmezett ikon (üres ha nincs)" + +#: common/models.py:1080 msgid "Enable label printing" msgstr "Címke nyomtatás engedélyezése" -#: common/models.py:1075 +#: common/models.py:1081 msgid "Enable label printing from the web interface" msgstr "Címke nyomtatás engedélyezése a web felületről" -#: common/models.py:1081 +#: common/models.py:1087 msgid "Label Image DPI" msgstr "Címke kép DPI" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Képek felbontása amik átadásra kerülnek címkenyomtató pluginoknak" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "Riportok engedélyezése" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "Riportok előállításának engedélyezése" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "Debug mód" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "Riportok előállítása HTML formátumban (hibakereséshez)" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "Lapméret" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "Alapértelmezett lapméret a PDF riportokhoz" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "Teszt riportok engedélyezése" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "Teszt riportok előállításának engedélyezése" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "Teszt riportok hozzáadása" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Teszt riport nyomtatáskor egy másolat hozzáadása a készlet tételhez" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "Batch kód sablon" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "Sablon a készlet tételekhez alapértelmezett batch kódok előállításához" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "Készlet lejárata" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "Készlet lejárat kezelésének engedélyezése" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "Lejárt készlet értékesítése" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "Lejárt készlet értékesítésének engedélyezése" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "Álló készlet ideje" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "Napok száma amennyivel a lejárat előtt a készlet tételeket állottnak vesszük" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "nap" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "Lejárt készlet gyártása" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "Gyártás engedélyezése lejárt készletből" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "Készlet tulajdonosok kezelése" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "Tuajdonosok kezelésének engedélyezése a készlet helyekre és tételekre" -#: common/models.py:1172 +#: common/models.py:1178 +msgid "Stock Location Default Icon" +msgstr "Hely alapértelmezett ikon" + +#: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "Hely alapértelmezett ikon (üres ha nincs)" + +#: common/models.py:1184 msgid "Build Order Reference Pattern" msgstr "Gyártási utasítás azonosító minta" -#: common/models.py:1173 +#: common/models.py:1185 msgid "Required pattern for generating Build Order reference field" msgstr "Szükséges minta a gyártási utasítás azonosító mező előállításához" -#: common/models.py:1179 +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "Vevői rendelés azonosító minta" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "Szükséges minta a vevői rendelés azonosító mező előállításához" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "Vevői rendeléshez alapértelmezett szállítmány" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "Beszerzési rendelés azonosító minta" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "Szükséges minta a beszerzési rendelés azonosító mező előállításához" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "Elfelejtett jelszó engedélyezése" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "Regisztráció engedélyezése" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "SSO engedélyezése" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "SSO engedélyezése a bejelentkező oldalon" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "Email szükséges" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "Kötelező email megadás regisztrációkor" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "SSO felhasználók automatikus kitöltése" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "Email kétszer" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "Jelszó kétszer" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "Csoport regisztráláskor" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "Csoport amihez a frissen regisztrált felhasználók hozzá lesznek rendelve" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "Többfaktoros hitelesítés kényszerítése" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk." -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "Pluginok ellenőrzése indításkor" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "Plugin aláírások ellenőrzése" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "Pluginok aláírásainak ellenőrzése és megjelenítése" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "URL integráció engedélyezése" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "Navigációs integráció engedélyezése" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "Navigációs integráció engedélyezése a pluginok számára" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "App integráció engedélyezése" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "App hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "Ütemezés integráció engedélyezése" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "Esemény integráció engedélyezése" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "Értesítésre beállított alkatrészek megjelenítése" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "Alkatrész értesítések megjelenítése a főoldalon" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "Értesítésre beállított kategóriák megjelenítése" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "Legújabb alkatrészek megjelenítése" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "Legújabb alkatrészek megjelenítése a főoldalon" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "Legfrissebb alkatrész szám" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "Főoldalon megjelenítendő legújabb alkatrészek" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "Jóváhagyás nélküli alkatrészjegyzékek megjelenítése" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "Legfrissebb készlet változások megjelenítése" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "Legfrissebb készlet mennyiség" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "Főoldalon megjelenítendő legújabb készlet tételek száma" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "Alacsony készlet megjelenítése" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "Alacsony készletek megjelenítése a főoldalon" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "Kimerült készlet megjelenítése" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "Kimerült készletek megjelenítése a főoldalon" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "Gyártáshoz szükséges készlet megjelenítése" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "Lejárt készlet megjelenítése" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "Lejárt készletek megjelenítése a főoldalon" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "Állott készlet megjelenítése" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "Álló készletek megjelenítése a főoldalon" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "Függő gyártások megjelenítése" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "Késésben lévő gyártások megjelenítése" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "Késésben lévő gyártások megjelenítése a főoldalon" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "Kintlévő beszerzési rendelések megjelenítése" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "Késésben lévő megrendelések megjelenítése" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "Késésben lévő megrendelések megjelenítése a főoldalon" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "Függő vevői rendelések megjelenítése" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "Függő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "Késésben lévő vevői rendelések megjelenítése" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "Beágyazott címke megjelenítés" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "Beágyazott riport megjelenítés" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "Alkatrészek keresése" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "Alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "Beszállítói alkatrészek keresése" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "Gyártói alkatrészek keresése" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "Kategóriák keresése" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "Készlet keresése" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "Készlet tételek megjelenítése a keresési előnézetben" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "Nem elérhető készlet tételek elrejtése" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "Helyek keresése" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "Készlet helyek megjelenítése a keresési előnézetben" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "Cégek keresése" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "Cégek megjelenítése a keresési előnézetben" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "Beszerzési rendelések keresése" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktív beszerzési rendelések kihagyása" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "Vevői rendelések keresése" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "Vevői rendelések megjelenítése a keresési előnézetben" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "Inaktív vevői rendelések kihagyása" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "Keresési előnézet eredményei" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "Mennyiség megjelenítése a formokon" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "ESC billentyű zárja be a formot" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "ESC billentyű használata a modális formok bezárásához" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "Rögzített menüsor" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "A menü pozíciója mindig rögzítve a lap tetején" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "Dátum formátum" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "Alkatrész ütemezési információk megjelenítése" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "Árlépcső mennyiség" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "Ár" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "Egységár egy meghatározott mennyiség esetén" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "Végpont" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "Végpont ahol ez a webhook érkezik" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "Webhook neve" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2589,67 +2626,67 @@ msgstr "Webhook neve" msgid "Active" msgstr "Aktív" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "Token" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "Token a hozzáféréshez" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "Titok" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "Megosztott titok a HMAC-hoz" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "Üzenet azonosító" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "Egyedi azonosító ehhez az üzenethez" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "Kiszolgáló" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "Kiszolgáló ahonnan ez az üzenet érkezett" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "Fejléc" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "Üzenet fejléce" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "Törzs" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "Üzenet törzse" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "Végpont amin ez az üzenet érkezett" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "Dolgozott rajta" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" @@ -2756,7 +2793,7 @@ msgstr "Kapcsolattartó" msgid "Link to external company information" msgstr "Link a külső céginformációhoz" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "Kép" @@ -2789,8 +2826,8 @@ msgid "Does this company manufacture parts?" msgstr "Gyárt ez a cég alkatrészeket?" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "Pénznem" @@ -2798,9 +2835,9 @@ msgstr "Pénznem" msgid "Default currency used for this company" msgstr "Cég által használt alapértelmezett pénznem" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "Kiindulási alkatrész" @@ -2811,7 +2848,7 @@ msgstr "Válassz alkatrészt" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2829,8 +2866,8 @@ msgstr "Gyártó kiválasztása" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "MPN" @@ -2849,7 +2886,7 @@ msgstr "Gyártói alkatrész leírása" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" @@ -2859,9 +2896,9 @@ msgstr "Paraméter neve" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "Érték" @@ -2869,10 +2906,10 @@ msgstr "Érték" msgid "Parameter value" msgstr "Paraméter értéke" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "Mértékegységek" @@ -2886,13 +2923,13 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "Beszállító" @@ -2903,8 +2940,8 @@ msgstr "Beszállító kiválasztása" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "SKU" @@ -2925,23 +2962,23 @@ msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "Megjegyzés" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "alap költség" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "Csomagolás" @@ -2949,7 +2986,7 @@ msgstr "Csomagolás" msgid "Part packaging" msgstr "Alkatrész csomagolás" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "többszörös" @@ -2960,9 +2997,9 @@ msgstr "Többszörös rendelés" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "Elérhető" @@ -2993,12 +3030,12 @@ msgstr "Pénznem kódja" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "Cég" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "Beszerzési rendelés létrehozása" @@ -3035,12 +3072,12 @@ msgid "Download image from URL" msgstr "Kép letöltése URL-ről" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "Vevő" @@ -3065,7 +3102,7 @@ msgstr "Kép letöltése" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "Beszállítói alkatrészek" @@ -3075,13 +3112,13 @@ msgstr "Új beszállítói alkatrész létrehozása" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "Új beszállítói alkatrész" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "Alkatrész rendelés" @@ -3095,8 +3132,8 @@ msgstr "Alkatrész törlés" msgid "Delete Parts" msgstr "Alkatrész törlés" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "Gyártói alkatrészek" @@ -3104,7 +3141,7 @@ msgstr "Gyártói alkatrészek" msgid "Create new manufacturer part" msgstr "Új gyártói alkatrész létrehozása" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "Új gyártói alkatrész" @@ -3118,10 +3155,10 @@ msgstr "Beszállítói készlet" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "Beszerzési rendelések" @@ -3141,10 +3178,10 @@ msgstr "Új beszerzési rendelés" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "Vevői rendelések" @@ -3160,7 +3197,7 @@ msgid "New Sales Order" msgstr "Új vevői rendelés" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "Hozzárendelt készlet" @@ -3169,14 +3206,14 @@ msgid "Supplier List" msgstr "Beszállítók listája" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "Gyártók" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Alkatrész rendelés" @@ -3202,19 +3239,19 @@ msgstr "Nincs elérhető gyártói információ" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "Beszállítók" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "Beszállítói alkatrész törlése" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "Törlés" @@ -3222,14 +3259,14 @@ msgstr "Törlés" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Paraméterek" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "Új paraméter" @@ -3238,7 +3275,7 @@ msgid "Delete parameters" msgstr "Paraméterek törlése" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "Paraméter hozzáadása" @@ -3259,10 +3296,10 @@ msgid "Assigned Stock Items" msgstr "Hozzárendelt készlet tételek" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "Beszállítói alkatrész" @@ -3273,7 +3310,7 @@ msgstr "Beszállítói alkatrész műveletek" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "Alkatrész rendelése" @@ -3306,13 +3343,13 @@ msgid "Supplier Part Stock" msgstr "Beszállítói készlet" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "Új készlet tétel létrehozása" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "Új készlet tétel" @@ -3328,7 +3365,7 @@ msgstr "Árinformációk" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "Árlépcső hozzáadása" @@ -3337,12 +3374,12 @@ msgid "No price break information found" msgstr "Nincs árlépcső információ" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "Árlépcső törlése" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "Árlépcső szerkesztése" @@ -3364,14 +3401,13 @@ msgstr "Alkatrész elérhetőség frissítése" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "Készlet" @@ -3390,14 +3426,14 @@ msgid "Pricing" msgstr "Árazás" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "Készlet tételek" @@ -3409,7 +3445,7 @@ msgstr "Új beszállító" msgid "New Manufacturer" msgstr "Új gyártó" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "Vevők" @@ -3418,7 +3454,7 @@ msgstr "Vevők" msgid "New Customer" msgstr "Új vevő" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "Cégek" @@ -3491,6 +3527,10 @@ msgstr "Lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "Alkatrész lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "Nincs egyező beszerzési rendelés" + #: order/models.py:82 msgid "Order description" msgstr "Rendelés leírása" @@ -3523,8 +3563,8 @@ msgstr "Beszerzési rendelés állapota" msgid "Company from which the items are being ordered" msgstr "Cég akitől a tételek beszerzésre kerülnek" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "Beszállítói azonosító" @@ -3581,7 +3621,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "Cél dátum a rendelés teljesítéséhez. Ez után számít majd késettnek." #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "Kiszállítás dátuma" @@ -3643,7 +3683,7 @@ msgstr "törölve" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "Rendelés" @@ -3651,11 +3691,11 @@ msgstr "Rendelés" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "Beszerzési rendelés" @@ -3663,9 +3703,9 @@ msgstr "Beszerzési rendelés" msgid "Supplier part" msgstr "Beszállítói alkatrész" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "Beérkezett" @@ -3674,9 +3714,9 @@ msgstr "Beérkezett" msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "Beszerzési ár" @@ -3850,11 +3890,11 @@ msgstr "Sortétel nem egyezik a beszerzési megrendeléssel" msgid "Select destination location for received items" msgstr "Válassz cél helyet a beérkezett tételeknek" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "Írd be a batch kódját a beérkezett tételeknek" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "Írd be a sorozatszámokat a beérkezett tételekhez" @@ -3964,77 +4004,77 @@ msgstr "Rendelés szerkesztése" msgid "Cancel order" msgstr "Rendelés törlése" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "Rendelés másolása" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "Rendelés leadása" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "Érkezett tételek bevételezése" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Bevételezés" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "Rendelés teljesítettnek jelölése" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "Rendelés befejezése" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "Rendelési azonosító" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "Rendelés leírása" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "Rendelés állapota" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "Nincs elérhető beszállítói információ" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "Kész sortételek" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "Hiányos" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "Kiküldve" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "Teljes költség" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "A teljes költség nem számolható" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "Beszerzési rendelés szerkesztése" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4061,11 +4101,11 @@ msgstr "Beszállítói alkatrész kiválasztása" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Sor törlése" @@ -4100,7 +4140,7 @@ msgstr "Beszerzési rendelés tételei" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "Sortétel hozzáadása" @@ -4146,7 +4186,7 @@ msgid "Print packing list" msgstr "Csomagolási lista nyomtatása" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "Szállítmányok készen" @@ -4160,7 +4200,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "Ehhez a vevői rendeléshez nincs minden alkatrész lefoglalva" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "Vevői azonosító" @@ -4184,8 +4224,8 @@ msgid "Pending Shipments" msgstr "Függő szállítmányok" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "Műveletek" @@ -4227,40 +4267,40 @@ msgstr "Kimenő vevői rendelés" msgid "Stock produced by Build Order" msgstr "Gyártással előállított készlet" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "A gyártási utasításhoz szükséges készlet" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "Érvényes" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "Teljes alkatrészjegyzék jóváhagyása" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "Ennek az opciónak ki kll lennie választva" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "Nullánál nagyobb kell legyen" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "Érvényes mennyiségnek kell lennie" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "Hely megadása a kezdeti alkarész készlethez" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "Ez a mező kötelező" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Alapértelmezett hely" @@ -4269,14 +4309,14 @@ msgid "Total Stock" msgstr "Teljes készlet" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "Elérhető készlet" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "Rendelve" @@ -4297,516 +4337,528 @@ msgstr "Alapértelmezett kulcsszavak" msgid "Default keywords for parts in this category" msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "Ikon" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "Ikon (opcionális)" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "Alkatrész kategóriák" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "Alkatrészek" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "Hibás választás a szülő alkatrészre" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "A '{p1}' alkatrész a '{p2}' alkatrészjegyzékében már szerepel (rekurzív)" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "A következő szabad sorozatszámok" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "A következő szabad sorozatszám" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "A legutóbbi sorozatszám" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "Azonos IPN nem engedélyezett az alkatrész beállításokban" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "Alkatrész neve" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "Sablon-e" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "Ez egy sablon alkatrész?" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "Ez az alkatrész egy másik változata?" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "Ebből a sablonból" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "Alkatrész leírása" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Kulcsszavak" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "Kategória" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "Alkatrész kategória" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "IPN" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "Belső cikkszám" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "Változat" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "Alapban hol tároljuk ezt az alkatrészt?" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "Alapértelmezett beszállítói alkatrész" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "Alapértelmezett lejárat" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Minimális készlet" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "Minimálisan megengedett készlet mennyiség" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "Az alkatrész raktározási mértékegységei" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "Gyártható-e ez az alkatrész más alkatrészekből?" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "Rendelhető-e ez az alkatrész egy külső beszállítótól?" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "Értékesíthető-e önmagában ez az alkatrész a vevőknek?" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "Aktív-e ez az alkatrész?" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ez egy virtuális nem megfogható alkatrész, pl. szoftver vagy licenc?" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "Alkatrész megjegyzések" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "Alkatrészjegyzék ellenőrző összeg" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "Tárolt alkatrészjegyzék ellenőrző összeg" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "Alkatrészjegyzéket ellenőrizte" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "Alkatrészjegyzék ellenőrzési dátuma" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "Létrehozó" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "Erre az alkatrészre már létezik teszt ilyen névvel" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "Kötelező" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Érvénytelen karakter ({c}) a sablon nevében" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "Paraméter mértékegysége" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "Adat" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "Alkatrész ID vagy alkatrész név" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "Alkatrész ID" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "Egyedi alkatrész ID értéke" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "Alkatrész neve" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "Alkatrész IPN" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "Szint" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "Opcionális" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "Örökölt" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "Változatok" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "1.rész" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "2.rész" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "Alkatrész kapcsolat nem hozható létre önmagával" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "Már létezik duplikált alkatrész kapcsolat" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "Beszerzési pénzneme ennek a készlet tételnek" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "Létező adat törlése" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "Örököltekkel együtt" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "Hibás sorok kihagyása" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "Engedély a hibás sorok kihagyására" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "Helyettesítő alkatrészek másolása" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "Meglévő alkatrészjegyzék törlése" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "Nincs megadva alkatrész oszlop" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "Több egyező alkatrész is található" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "Nincs egyező alkatrész" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "Az alkatrész nem lett összetevőként jelölve" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "Mennyiség nincs megadva" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "Érvénytelen mennyiség" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "Legalább egy alkatrészjegyzék tétel szükséges" @@ -4838,7 +4890,7 @@ msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzéket utoljár msgid "The BOM for %(part)s has not been validated." msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzék még nincs jóváhagyva." -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "Alkatrészjegyzék műveletek" @@ -4846,101 +4898,101 @@ msgstr "Alkatrészjegyzék műveletek" msgid "Delete Items" msgstr "Tételek törlése" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "Értesítések beállítva erre a kategóriára" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "Értesítések kérése erre a kategóriára" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "Kategória műveletek" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "Kategória szerkesztése" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "Kategória szerkesztése" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "Kategória törlése" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "Kategória törlése" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "Alkatrész kategória létrehozása" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "Új kategória" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "Kategória elérési út" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "Legfelső szintű alkatrész kategória" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Alkategóriák" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "Alkatrészek száma (alkategóriákkal együtt)" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "Alkatrész létrehozása" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "Új alkatrész" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "Opciók" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "Kategória beállítása" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "Kategória beállítása" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "Címkék nyomtatása" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "Alkatrész paraméterek" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "Alkatrész kategória létrehozása" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "Alkatrész létrehozása" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "Új alkatrész létrehozása ez után" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "Alkatrész sikeresen létrehozva" @@ -4948,7 +5000,7 @@ msgstr "Alkatrész sikeresen létrehozva" msgid "Import Parts" msgstr "Alkatrészek importálása" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "Alkatrész másolása" @@ -4976,138 +5028,146 @@ msgstr "%(full_name)s - %(desc)s (%(match_per)s%% egyezik)" msgid "Part Stock" msgstr "Alkatrész készlet" -#: part/templates/part/detail.html:54 +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "Ütemezési adatok frissítése" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" +msgstr "Frissítés" + +#: part/templates/part/detail.html:59 msgid "Part Test Templates" msgstr "Alkatrész teszt sablonok" -#: part/templates/part/detail.html:59 +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "Teszt sablon hozzáadása" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "Vevői rendeléshez foglalások" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "Alkatrész megjegyzések" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "Alkatrész változatok" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "Új változat létrehozása" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "Új változat" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "Paraméter hozzáadása" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "Kapcsolódó alkatrészek" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "Kapcsolódó hozzáadása" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Alkatrészjegyzék" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "Exportálási műveletek" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "Alkatrészjegyzék exportálása" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "Alkatrészjegyzék riport nyomtatása" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "Alkatrészjegyzék feltöltése" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "Alkatrészjegyzék másolása" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "Alkatrészjegyzék jóváhagyása" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "Új alkatrészjegyzék tétel" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "Alkatrészjegyzék tétel hozzáadása" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "Gyártmányok" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "Alkatrész gyártások" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "Gyártáshoz foglalások" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "Alkatrész beszállítók" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "Alkatrész gyártók" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "Gyártói alkatrészek törlése" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "Alkatrészjegyzék tétel létrehozása" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "Kapcsolódó alkatrész" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "Kapcsolódó alkatrész hozzáadása" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "Teszt eredmény sablon hozzáadása" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Beszerzési egységár - %(currency)s" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Egységár-önköltség különbség - %(currency)s" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Beszállítói egység költség - %(currency)s" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "Egységár - %(currency)s" @@ -5170,19 +5230,19 @@ msgstr "Értesítések kérése erre az alkatrészre" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "Vonalkód műveletek" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR kód megjelenítése" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "Címke nyomtatása" @@ -5191,8 +5251,8 @@ msgid "Show pricing information" msgstr "Árinformációk megjelenítése" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "Készlet műveletek" @@ -5253,7 +5313,7 @@ msgstr "Virtuális (nem kézzelfogható alkatrész)" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "Inaktív" @@ -5274,22 +5334,22 @@ msgid "In Stock" msgstr "Készleten" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "Gyártáshoz lefoglalva" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "Vevő rendeléshez lefoglalva" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "Gyártható" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "Gyártásban" @@ -5302,7 +5362,7 @@ msgid "Latest Serial Number" msgstr "Legutolsó sorozatszám" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "Sorozatszámra keresés" @@ -5341,7 +5401,7 @@ msgid "Total Cost" msgstr "Teljes költség" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "Nincs beszállítói árinfomáció" @@ -5376,6 +5436,18 @@ msgstr "Belső ár" msgid "No pricing information is available for this part." msgstr "Az alkatrészhez nem áll rendelkezésre árinformáció." +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "Dátum" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "Ütemezett mennyiség" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "Változatok" @@ -5424,7 +5496,7 @@ msgstr "Eladási ár megjelenítése" msgid "Calculation parameters" msgstr "Számítási paraméterek" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "Beszállítói költség" @@ -5462,8 +5534,8 @@ msgstr "Eladási költség" msgid "No sale pice history available for this part." msgstr "Az alkatrészhez nem áll rendelkezésre eladási ártörténet." -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "Nincs készlet" @@ -5517,11 +5589,11 @@ msgstr "Alkatrész változat létrehozása" msgid "Create a new variant of template '%(full_name)s'." msgstr "Új változat létrehozása a '%(full_name)s' sablonból." -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Ismeretlen adatbázis" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "{title} v{version}" @@ -5628,51 +5700,55 @@ msgstr "Email értesítések engedélyezése" msgid "Allow sending of emails for event notifications" msgstr "Email küldés engedélyezése esemény értesítésekre" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "Plugin meta adatok" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "JSON meta adat mező, külső pluginok számára" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "Plugin beállítás" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "Plugin beállítások" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "Kulcs" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "Plugin kulcsa" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "PluginNeve a pluginnak" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "Aktív-e a plugin" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "Példa plugin" + +#: plugin/models.py:186 msgid "Plugin" msgstr "Plugin" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "Módszer" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "Nincs szerző" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "Nincs dátum" @@ -5744,12 +5820,12 @@ msgstr "Vagy csomag nevet vagy URL-t meg kell adni" msgid "No valid objects provided to template" msgstr "Nincs érvényes objektum megadva a sablonhoz" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "A '{template}' sablon fájl hiányzik vagy nem érhető el" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "Teszt riport" @@ -5850,12 +5926,12 @@ msgid "Stock Item Test Report" msgstr "Készlet tétel teszt riport" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "Sorozatszám" @@ -5864,22 +5940,15 @@ msgid "Test Results" msgstr "Teszt eredmények" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "Teszt" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "Eredmény" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "Dátum" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "Sikeres" @@ -5894,8 +5963,8 @@ msgid "Installed Items" msgstr "Beépített tételek" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "Sorozatszám" @@ -5911,310 +5980,310 @@ msgstr "Egy érvényes alkatrészt meg kell adni" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Tulajdonos" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "Tulajdonos kiválasztása" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "Létezik már készlet tétel ilyen a sorozatszámmal" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "Virtuális alkatrészből nem lehet készletet létrehozni" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "A alkatrész típus ('{pf}') {pe} kell legyen" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "Mennyiség 1 kell legyen a sorozatszámmal rendelkező tételnél" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Nem lehet sorozatszámot megadni ha a mennyiség több mint egy" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "A tétel nem tartozhat saját magához" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "A tételnek kell legyen gyártási azonosítója ha az is_bulding igaz" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "Gyártási azonosító nem ugyanarra az alkatrész objektumra mutat" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "Szülő készlet tétel" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "Kiindulási alkatrész" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételhez" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Készlet hely" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "Hol található ez az alkatrész?" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "A csomagolása ennek a készlet tételnek itt van tárolva" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "Beépítve ebbe" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "Ez a tétel be van építve egy másik tételbe?" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "Sorozatszám ehhez a tételhez" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "Batch kód ehhez a készlet tételhez" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "Készlet mennyiség" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "Forrás gyártás" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "Gyártás ehhez a készlet tételhez" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "Forrás beszerzési rendelés" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "Beszerzés ehhez a készlet tételhez" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "Cél vevői rendelés" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "Lejárati dátum" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Készlet tétel lejárati dátuma. A készlet lejártnak tekinthető ezután a dátum után" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "Törlés ha kimerül" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "Készlet tétel törlése ha kimerül" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "Készlet tétel megjegyzések" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "Egy egység beszerzési ára a beszerzés időpontjában" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "Alkatrésszé alakítva" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "Az alkatrész nem követésre kötelezett" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "Mennyiség egész szám kell legyen" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "A mennyiség nem lépheti túl a készletet ({n})" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "A sorozatszám egész számok listája kell legyen" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Ezek a sorozatszámok már léteznek: {exists}" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "Készlet tétel beépül egy másikba" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "A készlet tétel más tételeket tartalmaz" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "Teszt neve" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "Tesztek megjegyzései" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "Szériaszám túl nagy" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "Beszerzési ára ennek a készlet tételnek" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "Add meg hány készlet tételt lássunk el sorozatszámmal" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "Írd be a sorozatszámokat az új tételekhez" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "Cél készlet hely" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "Opcionális megjegyzés mező" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "A sorozatszámok már léteznek" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "Válaszd ki a beépítésre szánt készlet tételt" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "Készlet tétel nem elérhető" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "A kiválasztott alkatrész nincs az alkatrészjegyzékben" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "Cél hely a kiszedett tételeknek" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "Tranzakció megjegyzés hozzáadása (opcionális)" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "Válassz alkatrészt amire konvertáljuk a készletet" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "A kiválasztott alkatrész nem megfelelő a konverzióhoz" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "Cél hely a visszatérő tételeknek" @@ -6311,7 +6380,7 @@ msgstr "Teszt adatok hozzáadása" msgid "Installed Stock Items" msgstr "Beépített készlet tételek" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "Készlet tétel beépítése" @@ -6319,7 +6388,7 @@ msgstr "Készlet tétel beépítése" msgid "Delete all test results for this stock item" msgstr "Készlet tétel összes teszt eredményének törlése" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "Teszt eredmény hozzáadása" @@ -6350,195 +6419,195 @@ msgid "Stock adjustment actions" msgstr "Készlet módosítási műveletek" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "Leltározás" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "Készlet növelése" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "Készlet csökkentése" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "Sorozatszámok előállítása" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Készlet áthelyezése" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "Vevőhöz rendelése" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "Visszavétel készletre" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "Készlet tétel kiszedése" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "Kiszedés" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "Készlet tétel beépítése" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "Beépítés" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "Változattá alakítás" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "Készlet tétel másolása" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "Készlet tétel szerkesztése" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "Készlet tétel törlése" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "Vonalkód azonosító" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "Szülő tétel" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "Nincs beállítva gyártó" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Úgytűnik nem vagy ennek a tételnek a tulajdonosa. Ezt így nem tudod módosítani." -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "Csak olvasható" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "Ez a készlet tétel éppen gyártás alatt van és nem szerkeszthető." -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "Készlet tétel szerkesztése a gyártási nézetből." -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "Ez a készlet tétel nem felelt meg az összes szükséges teszten" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "Foglalva ehhez a vevői rendeléshez" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "Foglalva ehhez a gyártási utasításhoz" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Ez a készlet tétel egyedi követésre kötelezett - egyedi sorozatszámmal rendelkezik így a mennyiség nem módosítható." -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "előző oldal" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "Menj az előző sorozatszámhoz" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "követkető oldal" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "Menj a következő sorozatszámhoz" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "Elérhető mennyiség" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "Nincs beállítva hely" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "Tesztek" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Ez a készlet tétel lejárt %(item.expiry_date)s-n" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "Lejárt" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Ez a készlet tétel lejár %(item.expiry_date)s-n" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "Állott" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "Utoljára módosítva" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "Utolsó leltár" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "Még nem volt leltározva" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "Készlet állapot szerkesztése" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "Válassz a lenti alkatrész változatok közül" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "Figyelem" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "Ez a művelet nem vonható vissza könnyen" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "Készlet tétel konvertálása" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "Visszavétel készletre" @@ -6550,59 +6619,59 @@ msgstr "Sorszámozott készletek létrehozása ebből a készlet tételből." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Válassz mennyiséget és egyedi sorozatszámokat a sorozatszámozáshoz." -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "Készlet hely keresése" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "Tételek bevételezése" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "Hely műveletek" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "Hely szerkesztése" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "Hely törlése" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "Új készlet hely létrehozása" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "Új hely" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "Hely elérési út" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "Legfelső szintű készlet hely" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "Hely tulajdonosa" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Úgytűnik nem vagy ennek a készlethelynek a tulajdonosa. Ezt így nem tudod módosítani." -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alhelyek" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "Készlethelyek" @@ -6873,15 +6942,15 @@ msgstr "Megnyitás új fülön" msgid "Part Settings" msgstr "Alkatrész beállítások" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "Alkatrész importálás" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "Alkatrész importálása" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "Alkatrész paraméter sablonok" @@ -6893,47 +6962,47 @@ msgstr "Plugin beállítások" msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." msgstr "Az alábbi beállítások módosításához a kiszolgáló azonnali újraindítása szükséges. Aktív használat közben ne változtass ezeken." -#: templates/InvenTree/settings/plugin.html:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "Pluginok" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "Plugin Telepítése" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "Admin" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "Szerző" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "Verzió" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "Minta" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "Inaktív pluginok" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "Plugin hibatároló" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "Szakasz" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "Üzenet" @@ -6997,11 +7066,11 @@ msgstr "Commit hash" msgid "Commit Message" msgstr "Commit üzenet" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "Aláírás státusza" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "Aláíró kulcs" @@ -7043,12 +7112,12 @@ msgid "No category parameter templates found" msgstr "Nincs kategória paraméter sablon" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "Sablon szerkesztése" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "Sablon törlése" @@ -7069,19 +7138,19 @@ msgstr "Nincs alkatrész paraméter sablon" msgid "ID" msgstr "Azonosító" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "Alkatrész paraméter sablon létrehozása" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "Alkatrész paraméter sablon módosítása" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "Az összes erre a sablonra hivatkozó paraméter is törlésre kerül" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "Alkatrész paraméter sablon törlése" @@ -7150,7 +7219,7 @@ msgid "Change Password" msgstr "Jelszó módosítása" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Szerkesztés" @@ -7660,7 +7729,7 @@ msgid "The following parts are low on required stock" msgstr "A következő alkatrészek szükséges készlete alacsony" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "Szükséges mennyiség" @@ -7674,6 +7743,7 @@ msgid "Click on the following link to view this part" msgstr "Klikk a következő linkre az alkatrész megjelenítéséhez" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "Minimum mennyiség" @@ -7826,7 +7896,7 @@ msgstr "Ez törli az összerendelést a készlet tétel és a vonalkód között msgid "Unlink" msgstr "Leválasztás" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "Készlet tétel törlése" @@ -7875,10 +7945,10 @@ msgstr "Sor adatok mutatása" msgid "Row Data" msgstr "Sor adat" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Bezárás" @@ -7888,12 +7958,12 @@ msgid "Download BOM Template" msgstr "Alkarészjegyzék sablon letöltése" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "Formátum" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "Fájlfomátum kiválasztása" @@ -7949,390 +8019,390 @@ msgstr "Beszállítói adatok megjelenítése az exportált alkatrészjegyzékbe msgid "Remove substitute part" msgstr "Helyettesítő alkatrész törlése" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "Válassz és adj hozzá új helyettesítő alkatrészt a lenti mezőben" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "Biztosan törölni akarod ezt a helyettesítő alkatrész hozzárendelést?" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "Helyettesítő alkatrész törlése" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "Helyettesítő hozzáadása" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "Alkatrészjegyzék tétel helyettesítők szerkesztése" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "Az összes kijelölt alkatrészjegyzék tétel törlésre kerül" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "Töröljük a kiválasztott alkatrészjegyzék tételeket?" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "BOM betöltése az al-gyártmányhoz" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "Vannak helyettesítők" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "Készletváltozatok engedélyezve" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "Nincs szabad" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "Változatokkal és helyettesítőkkel együtt" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "Változatokkal együtt" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "Helyettesítőkkel együtt" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "Helyettesítõk" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "Beszerzési ártartomány" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "Beszerzési átlagár" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "Alkatrészjegyzék megtekintése" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "Rendelés allattival együtt" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "Alkatrészjegyzék tétel jóváhagyása" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "Ez a sor jóvá lett hagyva" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "Helyettesítő alkatrészek szerkesztése" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "Alkatrészjegyzék tétel szerkesztése" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "Alkatrészjegyzék tétel törlése" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "Nem találhatók alkatrészjegyzék tételek" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "Szükséges alkatrész" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "Örökölve a szülő alkatrészjegyzéktől" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "Gyártási utasítás szerkesztése" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "Gyártási utasítás létrehozása" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "Gyártási utasítás törlése" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "Biztosan meg szeretnéd szakítani ezt a gyártást?" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "Ehhez a gyártáshoz készlet lett hozzárendelve" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "Ennek a gyártásnak befejezetlen kimenetei vannak" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "Gyártási utasítás készen áll a befejezésre" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "Gyártási utasítás befejezetlen" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "Gyártási utasítás befejezése" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "Következő szabad sorozatszám" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "Legutolsó sorozatszám" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "Az alkatrészjegyzék követésre kötelezett alkatrészeket tartalmaz" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "A gyártási kimeneteket egyesével kell előállítani" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "A követésre kötelezett alkatrészekhez sorozatszámot lehet rendelni" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "Adj meg sorozatszámokat a több egyedi gyártási kimenet létrehozásához" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "Gyártási kimenet létrehozása" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "Készlet tételek foglalása ehhez a gyártási kimenethez" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "Készlet felszabadítása a gyártási kimenetből" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "Gyártási kimenet befejezése" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "Gyártási kimenet törlése" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "Biztosan szeretnéd a már lefoglalt készlet tételeket felszabadítani ebből a gyártási utasításból?" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "Készlet tételek felszabadítása" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "Gyártási kimenetek kiválasztása" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "Legalább egy gyártási kimenetet ki kell választani" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "Kimenet" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "Gyártási kimenetek befejezése" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "Gyártási kimenetek törlése" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "Nincs gyártási utasításhoz történő foglalás" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "Hely nincs megadva" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "Nem található aktív gyártási kimenet" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "Lefoglalt készlet" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "Nincsenek követett BOM tételek ehhez a gyártáshoz" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "Befejezett tesztek" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "Nincsenek szükséges tesztek ehhez a gyártáshoz" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "Készlet foglalások szerkesztése" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "Készlet foglalások törlése" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "Foglalás szerkesztése" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "Foglalás törlése" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "Vannak helyettesítő alkatrészek" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "Szükséges/db" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "Nincs elegendő" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "Van elegendő" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "Lefoglalva" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "Gyártási készlet" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "Készlet rendelés" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "Lefoglalt készlet" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Kiválasztott alkatrészek" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "Legalább egy alkatrész választása szükséges a foglaláshoz" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "Minden alkatrész lefoglalva" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "Minden kiválasztott alkatrész teljesen lefoglalva" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "Készlet foglalása a gyártási utasításhoz" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "Nincs egyező készlethely" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "Nincs egyező készlet" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "Automatikus készlet foglalás" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "A készlet automatikusan lefoglalásra került ehhez a gyártási utasításhoz, a megadott feltételek szerint" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "Ha egy készlet hely meg van adva, akkor készlet csak arról a helyről lesz foglalva" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Ha a készlet helyettesíthetőnek minősül, akkor az első rendelkezésre álló helyről lesz lefoglalva" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Ha a helyettesítő készlet engedélyezve van, akkor ott az lesz használva ha az elsődleges alkatrésznek nincs készlete" -#: templates/js/translated/build.js:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "Készlet tételek foglalása" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "Nincs a lekérdezéssel egyező gyártási utasítás" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "Kiválaszt" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "Gyártás késésben van" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "Haladás" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "Nincs felhasználói információ" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "Nincs lefoglalt alkatrész ehhez" @@ -8348,11 +8418,11 @@ msgstr "Gyártói alkatrész hozzáadása" msgid "Edit Manufacturer Part" msgstr "Gyártói alkatrész szerkesztése" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "Beszállító hozzáadása" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "Beszállítói alkatrész hozzáadása" @@ -8401,34 +8471,34 @@ msgid "No manufacturer parts found" msgstr "Nincs gyártói alkatrész" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "Sablon alkatrész" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "Gyártmány alkatrész" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "Nem található paraméter" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "Paraméter törlése" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "Paraméter törlése" @@ -8507,44 +8577,44 @@ msgstr "Form nyitva tartása" msgid "Enter a valid number" msgstr "Adj meg egy érvényes számot" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Form hibák vannak" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "Nincs eredmény" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "Keresés" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "Bevitel törlése" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "Fájl oszlop" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "Mező név" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "Oszlopok kiválasztása" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "IGEN" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "NEM" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "Megjegyzések frissítve" @@ -8553,7 +8623,7 @@ msgid "Labels sent to printer" msgstr "Címkék nyomtatónak elküldve" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "Készlet tételek kiválasztása" @@ -8723,381 +8793,409 @@ msgstr "Nincs olvasatlan értesítés" msgid "Notifications will load here" msgstr "Az értesítések itt fognak megjelenni" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "Ehhez a szállítmányhoz nincs készlet hozzárendelve" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "A következő készlet tételek ki lesznek szállítva" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "Szállítmány kész" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "Szállítmány megerősítése" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "Nincs függő szállítmány" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "A függő a szállítmányokhoz nincs készlet hozzárendelve" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "Kihagyás" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "Beszerzési rendelés befejezése" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "Rendelés befejezettnek jelölése?" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "Minden sortétel megérkezett" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "Ez a rendelés olyan sortételeket tartalmaz amik még nem érkeztek be." -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "A rendelés befejezésével jelölésével annak adatai és sortételei a továbbiakban már nem lesznek szerkeszthetők." -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "Beszerzési rendelés törlése" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "Biztosan törölni szeretnéd ezt a beszerzési rendelést?" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "Ezt a beszerzési rendelést nem lehet törölni" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "Beszerzési rendelés kiküldése" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "A beszerzési rendelés kiküldése után annak sortételei a továbbiakban már nem lesznek szerkeszthetők." -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "Vevő rendelés törlése" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "A rendelés törlésével annak adatai a továbbiakban már nem lesznek szerkeszthetők." -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "Szállítmány létrehozása" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "Vevő hozzáadása" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "Vevői rendelés létrehozása" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "Válaszd ki a lemásolandó beszerzési rendelést" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "Sortételek másolása" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "Összes sortétel másolása a kiválasztott rendelésből" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "Egyéb tételek másolása" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "Összes egyéb tétel másolása a kiválasztott rendelésből" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "Beszerzési rendelés szerkesztése" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "Másolási opciók" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "Rendelés exportálása" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "Legalább egy beszerezhető alkatrészt ki kell választani" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "Rendelendő mennyiség" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "Új beszállítói alkatrész" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "Új beszerzési rendelés" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "Hozzáadás beszerzési rendeléshez" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "Nincsenek egyező beszállítói alkatrészek" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "Nincsenek egyező beszerzési rendelések" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "Sortételek kiválasztása" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "Legalább egy sortételt ki kell választani" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "Batch kód hozzáadása" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "Sorozatszám hozzáadása" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "Érkező mennyiség" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "Készlet állapota" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "Rendelési kód" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "Megrendelve" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "Érkező mennyiség" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "Bevételezés megerősítése" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "Beszerzési rendelés tételeinek bevételezése" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "Nem található beszerzési rendelés" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "Rendelés késésben" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "Tételek" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "Sortétel másolása" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "Sortétel szerkesztése" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "Sortétel törlése" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "Nem találhatók sortételek" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "Összesen" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "Egységár" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "Teljes ár" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "Ez a sortétel késésben van" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "Sortétel bevételezése" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "Sortétel másolása" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "Sortétel szerkesztése" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "Sortétel törlése" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "Sor másolása" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "Sor szerkesztése" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "Sor törlése" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "Sor másolása" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "Sor szerkesztése" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "Sor törlése" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "Nincs egyező sor" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "Nem található vevői rendelés" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "Érvénytelen vevő" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "Szállítmány szerkesztése" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "Szállítmány kész" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "Szállítmány törlése" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "Szállítmány szerkesztése" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "Szállítmány törlése" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "Nincs egyező szállímány" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "Szállítmány azonosító" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "Nincs kiszállítva" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "Nyomkövetés" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "Számla" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "Szállítmány hozzáadása" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "Készlet foglalás megerősítése" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "Készlet foglalása a vevői rendeléshez" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "Nincs vevői rendeléshez történő foglalás" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "Készlet foglalások szerkesztése" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "Törlési művelet megerősítése" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "Készlet foglalások törlése" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "Vevőnek kiszállítva" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "Készlethely nincs megadva" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "Sorozatszámok kiosztása" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "Készletrendelés" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "Árszámítás" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "Nem törölhető mivel a tételek ki lettek szállítva" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "Nem törölhető mivel tételek vannak lefoglalva" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "Sorozatszámok kiosztása" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "Egységár módosítása" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "Nincs egyező sortétel" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "Nincsenek egyező sorok" @@ -9181,241 +9279,269 @@ msgstr "Parméterek másolása az eredeti alkatrészről" msgid "Parent part category" msgstr "Felsőbb szintű alkatrész kategória" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "Ikon (opcionális) - Az összes ikon felfedezése itt" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "Alkatrész kategória szerkesztése" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "Biztos hogy törölni szeretnéd ezt az alkatrész kategóriát?" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "A lentebbi kategóriák a szülő kategóriába lesznek mozgatva" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "A kategória alkatrészei a szülő kategóriába lesznek mozgatva" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "Alkatrész kategória törlése" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "Alkatrész szerkesztése" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "Alkatrész módosítva" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "Alkatrész változat létrehozása" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "Aktív alkatrész" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "Alkatrész nem törölhető mivel még aktív" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "Ezen alkatrész törlése nem vonható vissza" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "Ennek az alkatrésznek a teljes készlete törölve lesz" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "Ez az alkatrész minden alkatrészjegyzékből törölve lesz" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "Ehhez az alkatrészhez rendelt minden beszállítói és gyártói információ törölve lesz" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "Alkatrész törlése" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "Értesítések beállítva erre a tételre" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "Értesítések beállítva erre a tételre" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "Értesítések kérése erre a tételre" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "Értesítések letiltva erre a tételre" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "Az alkatrészjegyzék jóváhagyása minden sortételt jóvá fog hagyni" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "Alkatrészjegyzék jóváhagyása" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "Alkatrészjegyzék jóvá lett hagyva" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "Alkatrészjegyzék másolása" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "Alacsony készlet" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "Nincs szabad" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "Követésre kötelezett alkatrész" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "Virtuális alkatrész" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "Értesítésre beállított alkatrész" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "Értékesíthető alkatrész" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "Nincs több változat" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "Alkatrész kapcsolatok törlése" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "Alkatrész kapcsolatok törlése" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "Nincs alkatrész" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "Nincs szabad" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "Nincs kategória" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "Nincs készlet" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "Megjelenítés listaként" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "Megjelenítés rácsnézetként" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "Kategória beállítása a kiválasztott alkatrészekhez" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "Alkatrész kategória beállítása" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "Alkatrész kategória kiválasztása" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "Kategória megadása kötelező" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "Megjelenítés fában" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" -msgstr "" +msgstr "Alkategóriák betöltése" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "Értesítésre beállított kategória" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "Nincs a lekérdezéssel egyező teszt sablon" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "Ez a teszt a szülő alkatrészhez lett felvéve" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "Teszt eredmény sablon szerkesztése" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "Teszt eredmény sablon törlése" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "Nincs ${human_name} információ" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "${human_name} szerkesztése" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "${human_name} törlése" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" -msgstr "Aktuális készlet" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" +msgstr "Nincs megadva dátum" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "A megadott dátum a múltban van" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "Spekulatív" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "Az alkatrészhez nem áll rendelkezésre ütemezési információ" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "Hiba az alkatrész ütemezési információinak betöltésekor" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "Ütemezett készlet mennyiség" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "Minimum mennyiség" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "Minimális készlet" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "Egységes ár" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "Egységes ár különbség" @@ -9489,11 +9615,11 @@ msgstr "Vevői rendelések kiválasztása" msgid "Sales Order(s) must be selected before printing report" msgstr "Vevői rendelés(eke)t ki kell választani a riport nyomtatás előtt" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "Eredmények összezárása" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "Eredmények eltávolítása" @@ -9509,376 +9635,376 @@ msgstr "Készlet sorozatszámozás megerősítése" msgid "Parent stock location" msgstr "Felsőbb szintű készlet hely" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "Készlet hely szerkesztése" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "Új készlet hely" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "Biztosan törölni szeretnéd ezt a készlet helyet?" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "A lentebbi helyek a szülő helybe lesznek mozgatva" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "A hely készlete a szülő helyre lesz mozgatva" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "Készlethely törlése" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "Ezt az alkatrészt nem lehet sorozatszámozni" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "Készlet tétel lemásolva" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "Készlet tétel másolása" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "Biztosan törölni szeretnéd ezt a készlet tételt?" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "Készlet tétel törlése" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "Készlet tétel szerkesztése" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "Készlet tétel létrehozva" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "Több készlet tétel létre lett hozva" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "Sorozatszám keresése" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "Sorozatszám megadása" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "Adj meg egy sorozatszámot" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "Nincs egyező sorozatszám" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "Több egyező eredmény is van" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "Készlet hozzárendelés jóváhagyása" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "Készlet vevőhöz rendelése" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "Figyelem: az összevonási művelet nem vonható vissza" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "Némi információ elveszik a készlet összevonás során" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "A készlettörténet törölve lesz az összevont tételeknél" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "A beszállítói alkatrész információk törlődnek az összevont tételeknél" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "Készlet összevonás megerősítése" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "Készlet tételek összevonása" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "Készlet áthelyezése" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "Áthelyezés" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "Leltározás" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "Mennyiség" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "Készlet csökkentése" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "Kivesz" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "Készlet növelése" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "Hozzáad" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "Készlet törlése" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség nem módosítható" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "Készlet mennyiség megadása" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "Ki kell választanod legalább egy rendelkezésre álló készlet tételt" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "Készlet módosítás jóváhagyása" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "SIKER" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "SIKERTELEN" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "NINCS EREDMÉNY" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "Teszt sikeres" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "Teszt eredmény hozzáadása" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "Nincs teszt eredmény" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "Teszt dátuma" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "Gyártásban" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "Beépítve készlet tételbe" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "Vevő rendeléshez hozzárendelve" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "Nincs hely megadva" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "Készlet tétel gyártás alatt" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "Készlet tétel teljes egészében lefoglalva" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "Készlet tétel részben lefoglalva" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "Készlet tétel beépítve egy másikba" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "Készlet tétel lejárt" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "Készlet tétel hamarosan lejár" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "Készlet tétel elutasítva" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "Készlet tétel elveszett" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "Készlet tétel megsemmisült" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "Kimerült" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "Leltár" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "Beszállítói alkatrész nincs megadva" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "Nincs a lekérdezésnek megfelelő készlet tétel" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "Készlet állapot beállítása" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "Státuszkód kiválasztása" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "Státuszkódot ki kell választani" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" -msgstr "" +msgstr "Alhelyek betöltése" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "Részletek" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "Alkatrész információ nem áll rendelkezésre" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "A hely már nem létezik" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "Beszerzési megrendelés már nem létezik" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "Vevő már nem létezik" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "A készlet tétel már nem létezik" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "Hozzáadva" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "Eltávolítva" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "Nincsenek beépített tételek" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "Készlet tétel kiszedése" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "Válaszd ki a kiszedni való készlet tételt" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "Másik tétel beépítése ebbe a készlet tételbe" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "A készlet tétel jelenleg elérhető készleten" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "A készlet tétel még nem épült be egy másik tételbe" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "A készlet tétel követett vagy sorozatszámmal vagy batch kóddal" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "Válaszd ki a beépítendő alkatrészt" @@ -10134,61 +10260,57 @@ msgstr "Táblázat exportálása" msgid "Select File Format" msgstr "Fájlfomátum kiválasztása" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "Adatok betöltése" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "sor oldalanként" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "Összes sor mutatása" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "Látható" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "-" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "a" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "sorból," -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Keresés" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "Nincs egyező eredmény" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "Lapozó elrejtése/megjelenítése" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "Frissítés" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "Átváltás" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "Oszlopok" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "Összes" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 81a019e4ea..8a2e48de97 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "API endpoint tidak ditemukan" @@ -25,26 +25,26 @@ msgstr "API endpoint tidak ditemukan" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Masukkan tanggal" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -89,80 +89,84 @@ msgstr "Konfirmasi alamat email" msgid "You must type the same email each time." msgstr "" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "" @@ -229,12 +233,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "" @@ -271,19 +275,19 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "" @@ -292,21 +296,23 @@ msgstr "" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "" @@ -319,7 +325,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -621,7 +627,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 41454eb66d..5776af2f2e 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "Endpoint API non trovato" @@ -25,26 +25,26 @@ msgstr "Endpoint API non trovato" msgid "Error details can be found in the admin panel" msgstr "I dettagli dell'errore possono essere trovati nel pannello di amministrazione" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Inserisci la data" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Note" @@ -89,80 +89,84 @@ msgstr "Conferma indirizzo email" msgid "You must type the same email each time." msgstr "È necessario digitare la stessa e-mail ogni volta." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Seriale duplicato: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Numero seriale vuoto" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Range gruppo: {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Gruppo non valido: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Sequenza gruppo non valida: {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Gruppo {group} invalido o inesistente" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Nessun numero di serie trovato" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "File mancante" msgid "Missing external link" msgstr "Link esterno mancante" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Seleziona file da allegare" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Collegamento" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Link a URL esterno" @@ -229,12 +233,12 @@ msgstr "Commento" msgid "File comment" msgstr "Commento del file" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Utente" @@ -271,19 +275,19 @@ msgstr "Errore nella rinominazione del file" msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Nome" @@ -292,21 +296,23 @@ msgstr "Nome" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Descrizione" @@ -319,7 +325,7 @@ msgid "parent" msgstr "genitore" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "Percorso" @@ -331,7 +337,7 @@ msgstr "Errore del server" msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Deve essere un numero valido" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Inviato" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Completo" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "Reso" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Spedito" @@ -621,7 +627,7 @@ msgstr "Diviso dall'elemento genitore" msgid "Split child item" msgstr "Dividi elemento figlio" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Elemento stock raggruppato" @@ -687,27 +693,27 @@ msgstr "L'eccesso non deve superare il 100%" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Modifica informazioni utente" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Imposta Password" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Le password devono coincidere" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Informazioni sistema" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "Informazioni Su InvenTree" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Ordine di Produzione" @@ -733,7 +739,7 @@ msgstr "Ordine di Produzione" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Ordini di Produzione" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Riferimento" @@ -758,7 +764,7 @@ msgstr "Riferimento" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Articolo" @@ -816,8 +822,8 @@ msgstr "Numero di riferimento ordine di vendita" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "Posizione Di Origine" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "Codice Lotto" @@ -866,8 +872,8 @@ msgstr "Codice Lotto" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Data di creazione" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Data di completamento" @@ -888,7 +894,7 @@ msgstr "Data di completamento" msgid "completed by" msgstr "Completato da" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "Rilasciato da" @@ -896,12 +902,12 @@ msgstr "Rilasciato da" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Responsabile" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Collegamento esterno" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "La quantità deve essere 1 per lo stock serializzato" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "Articolo in giacenza selezionato non trovato nel BOM" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Produzione" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Articoli in magazzino" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "Origine giacenza articolo" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Quantità" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "Installa in" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "Inserisci la quantità per l'output di compilazione" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Codice Seriale" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Posizione" @@ -1130,13 +1136,13 @@ msgstr "Posizione" msgid "Location for completed build outputs" msgstr "Posizione per gli output di build completati" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "Stato" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "Distinta base (Bom)" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "L'articolo deve essere disponibile" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantità disponibile ({q}) superata" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "Deve essere indicata l'allocazione dell'articolo" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Data scadenza" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "In ritardo" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Completato" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Ordini di Vendita" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Inviato da" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "Output Incompleti" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "Elimina Ordine Build" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile." #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Destinazione" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "Lotto" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Creato" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "Ordina articoli richiesti" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Ordine Articoli" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Azioni di stampa" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "Stampa etichette" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "Allegati" msgid "Build Notes" msgstr "Genera Note" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "Assegnazione Completa" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "Tutte le giacenze non tracciate sono state assegnate" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "Output Incompleti" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "Copia Template Parametri Categoria" msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "Assemblaggio" msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "Componente" @@ -1867,7 +1880,7 @@ msgstr "Componente" msgid "Parts can be used as sub-components by default" msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "Acquistabile" @@ -1875,7 +1888,7 @@ msgstr "Acquistabile" msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "Vendibile" @@ -1884,7 +1897,7 @@ msgstr "Vendibile" msgid "Parts are salable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "Tracciabile" msgid "Parts are trackable by default" msgstr "Gli articoli sono tracciabili per impostazione predefinita" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "Formato per visualizzare il nome dell'articolo" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "Abilita Report di Stampa" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "Abilita generazione di report di stampa" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "Modalità Debug" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "Genera report in modalità debug (output HTML)" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "Dimensioni pagina" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "Dimensione predefinita della pagina per i report PDF" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "Abilita generazione di stampe di prova" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "Scadenza giacenza" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "Abilita funzionalità di scadenza della giacenza" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "Vendi giacenza scaduta" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "Consenti la vendita di stock scaduti" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "giorni" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "Controllo della proprietà della giacenza" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "Abilita password dimenticata" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "Abilita la funzione password dimenticata nelle pagine di accesso" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "Abilita registrazione" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "SSO abilitato" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "Abilita SSO nelle pagine di accesso" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "Email richiesta" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "Riempimento automatico degli utenti SSO" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "Prezzo" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "Attivo" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "Token" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "Punto di contatto" msgid "Link to external company information" msgstr "Collegamento alle informazioni aziendali esterne" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "Immagine" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "Valuta" @@ -2797,9 +2834,9 @@ msgstr "Valuta" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "Articolo di base" @@ -2810,7 +2847,7 @@ msgstr "Seleziona articolo" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "Seleziona Produttore" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "Codice articolo produttore (MPN)" @@ -2848,7 +2885,7 @@ msgstr "Descrizione articolo costruttore" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Codice articolo produttore" @@ -2858,9 +2895,9 @@ msgstr "Nome parametro" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "Valore" @@ -2868,10 +2905,10 @@ msgstr "Valore" msgid "Parameter value" msgstr "Valore del parametro" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "Unità" @@ -2885,13 +2922,13 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "Fornitore" @@ -2902,8 +2939,8 @@ msgstr "Seleziona fornitore" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "Descrizione articolo fornitore" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "Nota" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "costo base" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "Confezionamento" @@ -2948,7 +2985,7 @@ msgstr "Confezionamento" msgid "Part packaging" msgstr "Imballaggio del pezzo" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "multiplo" @@ -2959,9 +2996,9 @@ msgstr "Ordine multiplo" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "Disponibile" @@ -2992,12 +3029,12 @@ msgstr "Codice valuta" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "Azienda" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "Crea ordine d'acquisto" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "Scarica immagine dall'URL" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "Cliente" @@ -3064,7 +3101,7 @@ msgstr "Download Immagine" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "Articoli fornitore" @@ -3074,13 +3111,13 @@ msgstr "Crea nuovo fornitore" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "Nuovo fornitore articolo" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "Articoli ordinati" @@ -3094,8 +3131,8 @@ msgstr "Cancella articoli" msgid "Delete Parts" msgstr "Cancella articoli" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "Giacenza Fornitore" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "Ordine di acquisto" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "Elenco dei fornitori" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "Produttori" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Articoli ordinati" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "Fornitori" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "Elimina articolo fornitore" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "Elimina" @@ -3221,14 +3258,14 @@ msgstr "Elimina" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametri" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "Nuovo Parametro" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "Elimina il parametro" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "Aggiungi parametro" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "Articolo Fornitore" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "Ordine Articolo" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "Fornitore articolo in giacenza" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "Crea nuova allocazione magazzino" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "Nuovo Elemento in giacenza" @@ -3327,7 +3364,7 @@ msgstr "Informazioni Prezzi" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "Aggiungi riduzione prezzo" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "Nessuna informazione di riduzione di prezzo trovata" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "Elimina riduzione di prezzo" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "Magazzino" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "Prezzi" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -3408,7 +3444,7 @@ msgstr "Nuovo Fornitore" msgid "New Manufacturer" msgstr "Nuovo Produttore" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "Clienti" @@ -3417,7 +3453,7 @@ msgstr "Clienti" msgid "New Customer" msgstr "Nuovo cliente" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "Aziende" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "Descrizione ordine" @@ -3522,8 +3562,8 @@ msgstr "Stato ordine d'acquisto" msgid "Company from which the items are being ordered" msgstr "Azienda da cui sono stati ordinati gli articoli" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "Riferimento fornitore" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "Articolo Fornitore" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "Annulla l'ordine" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "Invia l'ordine" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "Ricevere articoli" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "Contrassegna ordine come completato" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "Riferimento ordine" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "Stato dell'ordine" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "Emesso" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "Modifica ordine d'acquisto" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "Seleziona l'articolo del fornitore" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Elimina riga" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "Specifica la posizione per lo stock iniziale" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Posizione Predefinita" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "Giacenze Totali" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "Disponibilità in magazzino" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "Ordinato" @@ -4296,516 +4336,528 @@ msgstr "Keywords predefinite" msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "Categorie Articolo" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "Articoli" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "Scelta non valida per l'articolo principale" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "I successivi numeri di serie disponibili sono" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "Il prossimo numero di serie disponibile è" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "Il numero di serie più recente è" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "Nome articolo" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "È Template" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "Quest'articolo è un articolo di template?" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "Questa parte è una variante di un altro articolo?" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "Variante Di" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "Descrizione articolo" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Parole Chiave" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "Categoria" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "IPN - Numero di riferimento interno" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "Revisione" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "Dove viene normalmente immagazzinato questo articolo?" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "Fornitore predefinito" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "Articolo fornitore predefinito" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "Scadenza Predefinita" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Scorta Minima" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "Unità di conservazione delle scorte per quest'articolo" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "Quest'articolo può essere acquistato da fornitori esterni?" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "Questo pezzo può essere venduto ai clienti?" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "Quest'articolo è attivo?" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "È una parte virtuale, come un prodotto software o una licenza?" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "Codice Articolo" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "Elimina Elementi" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "Sei iscritto alle notifiche di questa categoria" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "Sottoscrivi notifiche per questa categoria" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "Azioni Categoria" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "Modifica categoria" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "Modifica Categoria" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "Elimina la categoria" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "Cancella categoria" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "Crea nuova categoria articoli" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "Nuova categoria" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "Percorso Categoria" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "Categoria articolo di livello superiore" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Sottocategorie" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "Articoli (incluse le sottocategorie)" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "Crea nuovo articolo" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "Nuovo articolo" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "Opzioni" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "Imposta categoria" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "Imposta Categoria" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "Stampa Etichette" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "Parametri articolo" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "Crea Categoria Articolo" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "Crea Articolo" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" +msgstr "Aggiorna" + +#: part/templates/part/detail.html:59 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:59 +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "Assegnazione Ordine Di Vendita" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "Articoli correlati" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Distinta base" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "Fornitori articoli" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "Componenti Produttori" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "Articoli correlati" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "Azioni Barcode" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Mostra QR Code" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "Stampa Etichetta" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "Azioni magazzino" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "Inattivo" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "In magazzino" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "Costo Totale" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "Data" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "Nessuna giacenza" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Database sconosciuto" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Nessun oggetto valido fornito nel modello" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "Data" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "Seriale" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "Seleziona Owner" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "Articolo base" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicazione magazzino" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "Installato In" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "Quantità disponibile" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "Data di Scadenza" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "Elimina al esaurimento" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "Numeri di serie già esistenti" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "Conta giacenza" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "Aggiungi giacenza" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "Rimuovi giacenza" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Trasferisci giacenza" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "pagina precedente" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "pagina successiva" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "Nessuna posizione impostata" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "Ultimo aggiornamento" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "Nessun inventario eseguito" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "Articoli controllati" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "Azioni posizione" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "Modifica la posizione" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "Elimina la posizione" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "Crea nuova posizione di magazzino" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "Nuova Posizione" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "Posizione stock di livello superiore" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Non sei nell'elenco dei proprietari di questa posizione. Questa posizione di giacenza non può essere modificata." -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sottoallocazioni" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "Posizioni magazzino" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "Impostazioni articolo" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "Nessun parametro di categoria trovato" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "Modifica Password" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Modifica" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "Quantità richiesta" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "Quantità minima" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Chiudi" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "Formato" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "La distinta base contiene articoli tracciabili" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "Posizione non specificata" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "Modifica allocazione magazzino" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "Elimina posizione giacenza" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "Modifica Posizione" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "Rimuovi Posizione" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Seleziona Articoli" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "Specificare il quantitativo assegnato allo stock" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le posizioni)" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "Nessuna posizione di magazzino corrispondente" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "Aggiungi fornitore" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "Aggiungi fornitore articolo" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "Modifica parametro" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "Elimina il parametro" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "Modifica parametro" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "Elimina Parametri" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "Inserisci un numero valido" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "Nessun risultato trovato" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "Ricerca" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "Cancella input" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "SÌ" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "Aggiungi cliente" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "Modifica ordine d'acquisto" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "Quantità da ricevere" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "Stato giacenza" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "Codice ordine" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "Ordinato" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "Totale" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "Prezzo Unitario" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "Prezzo Totale" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "Cliente non valido" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "Conferma l'assegnazione della giacenza" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "Nessun ordine di vendita trovato" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "Modifica posizione giacenza" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "Conferma Operazione Eliminazione" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "Elimina posizione giacenza" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "Spedito al cliente" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "Nessun posizione specificata" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "Prezzo d'acquisto" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "Calcola il prezzo" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "Categoria articolo principale" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "Modifica Categoria Articoli" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "Elimina categoria" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "Modifica l'articolo" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "Articolo modificato" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "Convalida la distinta dei materiali" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "In esaurimento" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "Parte tracciabile" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "Parte virtuale" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "Parte sottoscritta" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "Parte vendibile" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "Nessuna variante trovata" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "Elimina relazione tra i componenti" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "Nessun articolo trovato" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "Nessuna categoria" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "Visualizza come elenco" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "Visualizza come griglia" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "Imposta categoria articolo" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "Visualizza come struttura ad albero" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "Categoria sottoscritta" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "Nessun modello di test corrispondente" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "Modificare il risultato del test" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "Cancellare il risultato del test" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "Modifica ${human_name}" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "Elimina ${human_name}" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "Prezzo Singolo" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "Posizione giacenza principale" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "Modifica Posizione Giacenza" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "Nuova posizione giacenza" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "Sei sicuro di voler eliminare questa posizione?" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "Elimina Posizione di Giacenza" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "Inserisci quantità iniziale per questo articolo in giacenza" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "Crea nuova allocazione magazzino" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "Creato più elementi stock" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "Trasferisci giacenza" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "Sposta" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "Conta giacenza" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "Conta" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "Rimuovi giacenza" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "Prendi" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "Aggiungi giacenza" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "Aggiungi" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "Elimina Stock" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "Specificare la quantità di magazzino" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "Devi selezionare almeno un articolo disponibile" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "NESSUN RISULTATO" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "Aggiungi risultato test" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "Nessun risultato di prova trovato" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "In produzione" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "Installato nell'elemento stock" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "Assegnato all'ordine di vendita" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "Nessuna giacenza impostata" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "L'articolo di magazzino è in produzione" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "Articolo stock assegnato al cliente" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "L'elemento stock è stato installato in un altro articolo" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "L'articolo stock è scaduto" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "Articolo in giacenza prossimo alla scadenza" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "L'articolo stock è stato rifiutato" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "Esaurito" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "Inventario" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "La posizione non esiste più" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "Aggiunto" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "Rimosso" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "Caricamento dati" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "righe per pagina" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "Visualizzo" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "a" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "di" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "righe" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Cerca" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "Nessun risultato corrispondente" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "Mostra/nascondi la paginazione" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "Aggiorna" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "Attiva/disattiva" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "Colonne" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "Tutti" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 6244f66a11..a32e01c02a 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "APIエンドポイントが見つかりません" @@ -25,26 +25,26 @@ msgstr "APIエンドポイントが見つかりません" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "日付を入力する" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "メモ" @@ -89,80 +89,84 @@ msgstr "メールアドレスの確認" msgid "You must type the same email each time." msgstr "毎回同じメールアドレスを入力する必要があります。" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "重複したシリアル番号: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "数量コードが無効です" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "シリアル番号は空です" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "無効なグループ: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "{group} は無効なグループか、存在しません。" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "シリアル番号が見つかりません" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "ファイルがありません" msgid "Missing external link" msgstr "外部リンクが見つかりません。" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "添付ファイルを選択" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "リンク" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "外部 サイト へのリンク" @@ -229,12 +233,12 @@ msgstr "コメント:" msgid "File comment" msgstr "ファイルコメント" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "ユーザー" @@ -271,19 +275,19 @@ msgstr "ファイル名の変更に失敗しました" msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "お名前" @@ -292,21 +296,23 @@ msgstr "お名前" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "説明" @@ -319,7 +325,7 @@ msgid "parent" msgstr "親" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "設置済" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "完了" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "返品済" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "発送済み" @@ -621,7 +627,7 @@ msgstr "親アイテムから分割する" msgid "Split child item" msgstr "子項目を分割" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "商品在庫をマージしました" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "ユーザー情報を編集" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "パスワードを設定" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "システム情報" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "パーツ" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "作成日時" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "パーツを割り当てるためにビルドする" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "在庫商品" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "数量" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "ステータス" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "注文必須パーツ" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "パーツの注文" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "テンプレート" msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "アセンブリ" msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "コンポーネント" @@ -1867,7 +1880,7 @@ msgstr "コンポーネント" msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "購入可能" @@ -1875,7 +1888,7 @@ msgstr "購入可能" msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "追跡可能" msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "デバッグモード" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "メッセージ ID:" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "メーカー・パーツ" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "サプライヤー・パーツ" @@ -3074,13 +3111,13 @@ msgstr "新しいサプライヤー・パーツを作成" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "新しいサプライヤー・パーツ" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "パーツの注文" @@ -3094,8 +3131,8 @@ msgstr "パーツを削除" msgid "Delete Parts" msgstr "パーツを削除" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "メーカー・パーツ" @@ -3103,7 +3140,7 @@ msgstr "メーカー・パーツ" msgid "Create new manufacturer part" msgstr "新しいメーカー・パーツを作成" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "新しいメーカ―・パーツ" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "パーツの注文" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "購入金額" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "パーツ" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "カテゴリ" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "新規カテゴリ" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "新規パーツ" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "続けて別のパーツを作る" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "在庫切れ" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "期限切れ" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "メーカー・パーツの編集" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index d87af16a77..68b056c5fb 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "" @@ -25,26 +25,26 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -89,80 +89,84 @@ msgstr "이메일 주소 확인" msgid "You must type the same email each time." msgstr "" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "첨부할 파일을 선택하세요" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "링크" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "외부 URL로 링크" @@ -229,12 +233,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "사용자" @@ -271,19 +275,19 @@ msgstr "파일 이름 바꾸기 오류" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "이름" @@ -292,21 +296,23 @@ msgstr "이름" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "설명" @@ -319,7 +325,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "유효한 숫자여야 합니다" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -621,7 +627,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "사용자 정보 수정" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "비밀번호 설정" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "비밀번호가 일치해야 합니다" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "시스템 정보" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "외부 링크" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "수량" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "수량 값은 0보다 커야 합니다" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "일련번호" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "위치" @@ -1130,13 +1136,13 @@ msgstr "위치" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "상태" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "구입 가능" @@ -1875,7 +1888,7 @@ msgstr "구입 가능" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "판매 가능" @@ -1884,7 +1897,7 @@ msgstr "판매 가능" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "디버그 모드" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "페이지 크기" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "PDF 보고서 기본 페이지 크기" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "SSO 활성화" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "로그인 페이지에서 SSO 활성화" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "이메일 필요" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "두 번 보내기" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "이미지" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "회사" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "URL에서 이미지 다운로드" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "고객" @@ -3064,7 +3101,7 @@ msgstr "이미지 다운로드" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "삭제" @@ -3221,14 +3258,14 @@ msgstr "삭제" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "신규 고객" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "데이터" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "부품 명세서" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR 코드 보기" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "일련번호 검색" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "키" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "일련번호" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "일련번호가 이미 존재합니다" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "경고" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "새 탭에서 열기" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "관리자" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "작성자" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "버전" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "메시지" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "비밀번호 변경" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "선택" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "예" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "아니오" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "단가" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "부품 명세서 복사" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "일련번호 찾기" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "일련번호를 입력하세요" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "일련번호를 입력하세요" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "일치하는 일련번호가 없습니다" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index 7d5d35fb2a..24ddd8239f 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-06 01:07\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "API eindpunt niet gevonden" @@ -25,26 +25,26 @@ msgstr "API eindpunt niet gevonden" msgid "Error details can be found in the admin panel" msgstr "Error details kunnen worden gevonden in het admin scherm" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Voer datum in" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Opmerkingen" @@ -89,80 +89,84 @@ msgstr "E-mailadres bevestiging" msgid "You must type the same email each time." msgstr "Er moet hetzelfde e-mailadres ingevoerd worden." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "Verbindingsfout" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "Server reageerde met ongeldige statuscode" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "Uitzondering opgetreden" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "Server reageerde met ongeldige Content-Length waarde" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "Afbeeldingsformaat is te groot" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "Beelddownload overschrijdt de maximale grootte" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "Externe server heeft lege reactie teruggegeven" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "Opgegeven URL is geen geldig afbeeldingsbestand" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Duplicaat serienummer: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveelheid ingevoerd" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Leeg serienummer" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ongeldig groepsbereik: {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Ongeldige groep: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ongeldig groepsbereik: {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Ongeldige/geen groep {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Geen serienummers gevonden" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Hoeveelheid van unieke serienummers ({s}) moet overeenkomen met de hoeveelheid ({q})" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "Onjuist opgemaakt patroon" @@ -195,7 +199,7 @@ msgstr "Ontbrekend bestand" msgid "Missing external link" msgstr "Externe link ontbreekt" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Bestand als bijlage selecteren" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Link" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Link naar externe URL" @@ -229,12 +233,12 @@ msgstr "Opmerking" msgid "File comment" msgstr "Bestand opmerking" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Gebruiker" @@ -271,19 +275,19 @@ msgstr "Fout bij hernoemen bestand" msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Naam" @@ -292,21 +296,23 @@ msgstr "Naam" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Omschrijving" @@ -319,7 +325,7 @@ msgid "parent" msgstr "bovenliggende" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "Pad" @@ -331,7 +337,7 @@ msgstr "Serverfout" msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Geplaatst" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Voltooid" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "Retour" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Verzonden" @@ -621,7 +627,7 @@ msgstr "Splits van bovenliggend item" msgid "Split child item" msgstr "Splits onderliggende item" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Samengevoegde voorraadartikelen" @@ -687,27 +693,27 @@ msgstr "Overschot mag niet groter zijn dan 100%" msgid "Invalid value for overage" msgstr "Ongeldige waarde voor overschot" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Gebruikersgegevens bewerken" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Wachtwoord instellen" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Wachtwoordvelden komen niet overeen" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "Onjuist wachtwoord opgegeven" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Systeeminformatie" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "Over InvenTree" @@ -724,7 +730,7 @@ msgstr "Ongeldige keuze voor bovenliggende productie" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Productieorder" @@ -733,7 +739,7 @@ msgstr "Productieorder" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Productieorders" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "Productieorderreferentie" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Referentie" @@ -758,7 +764,7 @@ msgstr "Referentie" msgid "Brief description of the build" msgstr "Korte beschrijving van de productie" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Bovenliggende Productie" @@ -767,40 +773,40 @@ msgstr "Bovenliggende Productie" msgid "BuildOrder to which this build is allocated" msgstr "Productieorder waar deze productie aan is toegewezen" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Onderdeel" @@ -816,8 +822,8 @@ msgstr "Verkooporder Referentie" msgid "SalesOrder to which this build is allocated" msgstr "Verkooporder waar deze productie aan is toegewezen" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "Bronlocatie" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "Productiestatuscode" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "Batchcode" @@ -866,8 +872,8 @@ msgstr "Batchcode" msgid "Batch code for this build output" msgstr "Batchcode voor deze productieuitvoer" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Aanmaakdatum" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum." #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Opleveringsdatum" @@ -888,7 +894,7 @@ msgstr "Opleveringsdatum" msgid "completed by" msgstr "voltooid door" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "Uitgegeven door" @@ -896,12 +902,12 @@ msgstr "Uitgegeven door" msgid "User who issued this build order" msgstr "Gebruiker die de productieorder heeft gegeven" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Verantwoordelijke" @@ -912,8 +918,8 @@ msgstr "Gebruiker verantwoordelijk voor deze productieorder" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Externe Link" @@ -930,80 +936,80 @@ msgstr "Productieorder {build} is voltooid" msgid "A build order has been completed" msgstr "Een productieorder is voltooid" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "Geen productie uitvoer opgegeven" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "Productie uitvoer is al voltooid" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "Productuitvoer komt niet overeen met de Productieorder" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofdonderdeel gemarkeerd is als traceerbaar" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "Voorraad item is te veel toegewezen" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "Toewijzing hoeveelheid moet groter zijn dan nul" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "Geselecteerd voorraadartikel niet gevonden in stuklijst" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Product" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "Product om onderdelen toe te wijzen" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Voorraadartikel" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "Bron voorraadartikel" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Hoeveelheid" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "Voorraad hoeveelheid toe te wijzen aan productie" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "Installeren in" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "Bestemming voorraadartikel" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "Productieuitvoer" @@ -1070,10 +1076,10 @@ msgstr "Deze productieuitvoer is niet volledig toegewezen" msgid "Enter quantity for build output" msgstr "Voer hoeveelheid in voor productie uitvoer" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Serienummers" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "Een lijst van productieuitvoeren moet worden verstrekt" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Locatie" @@ -1130,13 +1136,13 @@ msgstr "Locatie" msgid "Location for completed build outputs" msgstr "Locatie van voltooide productieuitvoeren" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "Status" @@ -1164,117 +1170,121 @@ msgstr "Verwijder Incomplete Uitvoeren" msgid "Delete any build outputs which have not been completed" msgstr "Verwijder alle productieuitvoeren die niet zijn voltooid" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" -msgstr "Accepteer voorraadartikelen die teveel zijn toegewezen aan deze productieorder" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" +msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "Accepteer Niet-toegewezen" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepteer dat voorraadartikelen niet volledig zijn toegewezen aan deze productieorder" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "Vereiste voorraad is niet volledig toegewezen" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "Accepteer Onvolledig" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accepteer dat het vereist aantal productieuitvoeren niet is voltooid" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "Vereiste productiehoeveelheid is voltooid" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "Productieorder heeft onvolledige uitvoeren" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "Er zijn geen productuitvoeren aangemaakt voor deze productieorder" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "Stuklijstartikel" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "Productieuitvoer" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "Productieuitvoer moet naar dezelfde productie wijzen" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part moet naar hetzelfde onderdeel wijzen als de productieorder" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "Artikel moet op voorraad zijn" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Beschikbare hoeveelheid ({q}) overschreden" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "Productieuitvoer moet worden opgegeven voor de toewijzing van gevolgde onderdelen" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Productieuitvoer kan niet worden gespecificeerd voor de toewijzing van niet gevolgde onderdelen" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "Dit voorraadartikel is al toegewezen aan deze productieoutput" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "Allocaties voor artikelen moeten worden opgegeven" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Voorraadlocatie waar onderdelen afkomstig zijn (laat leeg om van elke locatie te nemen)" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "Locatie uitsluiten" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "Voorraadartikelen van deze geselecteerde locatie uitsluiten" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "Uitwisselbare voorraad" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Voorraadartikelen op meerdere locaties kunnen uitwisselbaar worden gebruikt" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "Vervangende Voorraad" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "Toewijzing van vervangende onderdelen toestaan" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "Annuleer Productie" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "Verwijder Productie" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "Voltooi Productie" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "Productiebeschrijving" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "Er zijn geen productuitvoeren aangemaakt voor deze productieorder" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Deze Productieorder is toegewezen aan verkooporder %(link)s" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Deze Productieorder is een onderdeel van Productieorder %(link)s" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "Productieorder is gereed om te markeren als voltooid" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Productieorder kan niet worden voltooid omdat er nog producties openstaan" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "Vereiste Producthoeveelheid is nog niet bereikt" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "Voorraad is niet volledig toegewezen aan deze productieorder" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Streefdatum" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "Deze productie was verwacht op %(target)s" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "Deze productie was verwacht op %(target)s" msgid "Overdue" msgstr "Achterstallig" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Voltooid" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Verkooporder" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Uitgegeven door" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "Onvolledige Productieuitvoeren" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "Productieorder kan niet worden voltooid omdat er onvoltooide productieuitvoeren openstaan" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "Verwijder Productieorder" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "Voorraad kan worden genomen van elke beschikbare locatie." #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Bestemming" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "Toegewezen Onderdelen" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "Batch" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Gecreëerd" @@ -1476,7 +1485,7 @@ msgstr "Onderliggende Productieorders" msgid "Allocate Stock to Build" msgstr "Voorraad toewijzen aan Product" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "Voorraadtoewijzing ongedaan maken" @@ -1507,7 +1516,7 @@ msgstr "Vereiste onderdelen bestellen" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Onderdelen bestellen" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "Verwijder uitvoeren" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Afdrukacties" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "Labels afdrukken" @@ -1579,7 +1588,7 @@ msgstr "Voltooide Productieuitvoeren" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "Bijlagen" msgid "Build Notes" msgstr "Productie notities" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "Toewijzing Voltooid" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "Alle niet gevolgde voorraadartikelen zijn toegewezen" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "Nieuwe Productieorder" @@ -1609,6 +1618,10 @@ msgstr "Print Productieorders" msgid "Build Order Details" msgstr "Productieorderdetails" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "Onvolledige Productieuitvoeren" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "Voltooide Uitvoeren" @@ -1838,7 +1851,7 @@ msgstr "Kopiëer Categorieparameter Sjablonen" msgid "Copy category parameter templates when creating a part" msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "Sjabloon" msgid "Parts are templates by default" msgstr "Onderdelen zijn standaard sjablonen" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "Samenstelling" msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "Component" @@ -1867,7 +1880,7 @@ msgstr "Component" msgid "Parts can be used as sub-components by default" msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "Koopbaar" @@ -1875,7 +1888,7 @@ msgstr "Koopbaar" msgid "Parts are purchaseable by default" msgstr "Onderdelen kunnen standaard gekocht worden" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "Verkoopbaar" @@ -1884,7 +1897,7 @@ msgstr "Verkoopbaar" msgid "Parts are salable by default" msgstr "Onderdelen kunnen standaard verkocht worden" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "Volgbaar" msgid "Parts are trackable by default" msgstr "Onderdelen kunnen standaard gevolgd worden" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "Opmaak om de onderdeelnaam weer te geven" #: common/models.py:1074 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1075 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 msgid "Enable label printing" msgstr "Printen van labels Inschakelen" -#: common/models.py:1075 +#: common/models.py:1081 msgid "Enable label printing from the web interface" msgstr "Printen van labels via de webinterface inschakelen" -#: common/models.py:1081 +#: common/models.py:1087 msgid "Label Image DPI" msgstr "Label Afbeelding DPI" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI resolutie bij het genereren van afbeelginsbestanden voor label printer plugins" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "Activeer Rapportages" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "Activeer het genereren van rapporten" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "Foutopsporingsmodus" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "Rapporten genereren in debug modus (HTML uitvoer)" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "Paginagrootte" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "Standaard paginagrootte voor PDF rapporten" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "Activeer Testrapporten" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "Activeer het genereren van testrapporten" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "Testrapporten Toevoegen" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Bij het afdrukken van een Testrapport, voeg een kopie van het Testrapport toe aan het bijbehorende Voorraadartikel" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "Batchcode Sjabloon" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "Verlopen Voorraad" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "Verlopen voorraad functionaliteit inschakelen" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "Verkoop Verlopen Voorraad" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "Verkoop verlopen voorraad toestaan" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "Voorraad Vervaltijd" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "Aantal dagen voordat voorraadartikelen als verouderd worden beschouwd voor ze verlopen" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "dagen" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "Produceer Verlopen Voorraad" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "Sta productie met verlopen voorraad toe" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "Voorraad Eigenaar Toezicht" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "Eigenaarstoezicht over voorraadlocaties en items inschakelen" -#: common/models.py:1172 +#: common/models.py:1178 +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 msgid "Build Order Reference Pattern" msgstr "Productieorderreferentiepatroon" -#: common/models.py:1173 +#: common/models.py:1185 msgid "Required pattern for generating Build Order reference field" msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld" -#: common/models.py:1179 +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "Verkooporderreferentiepatroon" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "Standaard Verzending Verkooporder" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "Aanmaken standaard verzending bij verkooporders inschakelen" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "Inkooporderreferentiepatroon" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "Wachtwoord vergeten functie inschakelen" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "Registratie inschakelen" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "SSO inschakelen" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "SSO inschakelen op de inlogpagina's" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "E-mailadres verplicht" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "E-mail twee keer" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "Groep bij aanmelding" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "Groep waaraan nieuwe gebruikers worden toegewezen bij registratie" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "MFA afdwingen" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "Gebruikers moeten multifactor-beveiliging gebruiken." -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "Controleer plugins bij het opstarten" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "Activeer URL-integratie" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "Toon laatste onderdelen" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "Toon laatste onderdelen op de startpagina" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "Recente Voorraadtelling" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "Toon recente voorraadwijzigingen" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "Toon recent aangepaste voorraadartikelen op de startpagina" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "Recente Voorraadtelling" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "Toon lage voorraad" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "Toon lage voorraad van artikelen op de startpagina" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "Toon lege voorraad" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "Toon lege voorraad van artikelen op de startpagina" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "Toon benodigde voorraad" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "Toon verlopen voorraad" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "Toon verlopen voorraad van artikelen op de startpagina" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "Toon verouderde voorraad" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "Toon verouderde voorraad van artikelen op de startpagina" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "Toon openstaande producties" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "Toon openstaande producties op de startpagina" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "Toon achterstallige productie" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "Toon achterstallige producties op de startpagina" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "Toon uitstaande PO's" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "Toon uitstaande PO's op de startpagina" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "Toon achterstallige PO's" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "Toon achterstallige PO's op de startpagina" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "Toon uitstaande SO's" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "Toon uitstaande SO's op de startpagina" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "Toon achterstallige SO's" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "Toon achterstallige SO's op de startpagina" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "Zoek Onderdelen" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "Zoek in Voorraad" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "Inkooporders Zoeken" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "Toon inkooporders in het zoekvenster" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "Inactieve Inkooporders Weglaten" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inactieve inkooporders weglaten in het zoekvenster" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "Verkooporders zoeken" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "Toon verkooporders in het zoekvenster" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "Inactieve Verkooporders Weglaten" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "Prijs" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "Actief" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "Token" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "Token voor toegang" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "Geheim" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "Bericht ID" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "Host" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "Koptekst" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "Koptekst van dit bericht" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "Berichtinhoud" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "Inhoud van dit bericht" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "Contactpunt" msgid "Link to external company information" msgstr "Link naar externe bedrijfsinformatie" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "Afbeelding" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "Fabriceert dit bedrijf onderdelen?" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "Valuta" @@ -2797,9 +2834,9 @@ msgstr "Valuta" msgid "Default currency used for this company" msgstr "Standaardvaluta die gebruikt wordt voor dit bedrijf" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "Basis onderdeel" @@ -2810,7 +2847,7 @@ msgstr "Onderdeel selecteren" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "Fabrikant selecteren" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "MPN" @@ -2848,7 +2885,7 @@ msgstr "Omschrijving onderdeel fabrikant" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" @@ -2858,9 +2895,9 @@ msgstr "Parameternaam" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "Waarde" @@ -2868,10 +2905,10 @@ msgstr "Waarde" msgid "Parameter value" msgstr "Parameterwaarde" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "Eenheden" @@ -2885,13 +2922,13 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "Leverancier" @@ -2902,8 +2939,8 @@ msgstr "Leverancier selecteren" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "SKU" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "Opmerking" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "basisprijs" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "meerdere" @@ -2959,9 +2996,9 @@ msgstr "Order meerdere" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "Beschikbaar" @@ -2992,12 +3029,12 @@ msgstr "Valutacode" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "Bedrijf" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "Inkooporder aanmaken" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "Afbeelding downloaden van URL" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "Klant" @@ -3064,7 +3101,7 @@ msgstr "Afbeelding Downloaden" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "Bestel onderdelen" @@ -3094,8 +3131,8 @@ msgstr "Verwijder onderdelen" msgid "Delete Parts" msgstr "Verwijder Onderdelen" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "Fabrikant onderdelen" @@ -3103,7 +3140,7 @@ msgstr "Fabrikant onderdelen" msgid "Create new manufacturer part" msgstr "Maak nieuw fabrikant onderdeel" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "Nieuw fabrikant onderdeel" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "Inkooporders" @@ -3140,10 +3177,10 @@ msgstr "Nieuwe Inkooporder" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "Verkooporders" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "Nieuwe Verkooporder" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "Leverancierslijst" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "Fabrikanten" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Order onderdeel" @@ -3201,19 +3238,19 @@ msgstr "Geen fabrikanten informatie beschikbaar" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "Leveranciers" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "Verwijder leveranciersonderdelen" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "Verwijderen" @@ -3221,14 +3258,14 @@ msgstr "Verwijderen" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parameters" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "Nieuwe Parameter" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "Parameter verwijderen" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "Parameter toevoegen" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "Toegewezen Voorraadartikelen" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "Leveranciersonderdeel" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "Order Onderdeel" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "Nieuw voorraadartikel aanmaken" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "Nieuw Voorraadartikel" @@ -3327,7 +3364,7 @@ msgstr "Prijsinformatie" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "Voorraad" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "Prijzen" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "Voorraadartikelen" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "Nieuwe fabrikant" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "Klanten" @@ -3417,7 +3453,7 @@ msgstr "Klanten" msgid "New Customer" msgstr "Nieuwe Klant" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "Bedrijven" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "Order beschrijving" @@ -3522,8 +3562,8 @@ msgstr "Inkooporder status" msgid "Company from which the items are being ordered" msgstr "Bedrijf waar de artikelen van worden besteld" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "Leveranciersreferentie" @@ -3545,7 +3585,7 @@ msgstr "Order uitgegeven op datum" #: order/models.py:280 msgid "Target Delivery Date" -msgstr "Doel Leverdatum" +msgstr "Streefdatum Levering" #: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "Streefdatum voor voltooien order. De order is na deze datum achterstallig." #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "Verzenddatum" @@ -3642,7 +3682,7 @@ msgstr "verwijderd" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "Order" @@ -3650,11 +3690,11 @@ msgstr "Order" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "Inkooporder" @@ -3662,9 +3702,9 @@ msgstr "Inkooporder" msgid "Supplier part" msgstr "Leveranciersonderdeel" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "Ontvangen" @@ -3673,9 +3713,9 @@ msgstr "Ontvangen" msgid "Number of items received" msgstr "Aantal ontvangen artikelen" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "Inkoopprijs" @@ -3819,7 +3859,7 @@ msgstr "Order is niet open" #: order/serializers.py:318 msgid "Purchase price currency" -msgstr "Inkoopprijs valuta" +msgstr "Valuta Inkoopprijs" #: order/serializers.py:337 msgid "Supplier part must be specified" @@ -3847,23 +3887,23 @@ msgstr "Artikelregel komt niet overeen met inkooporder" #: order/serializers.py:429 order/serializers.py:533 msgid "Select destination location for received items" -msgstr "Selecteer bestemmingslocatie voor ontvangen items" +msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "Voer serienummers in voor inkomende voorraadartikelen" #: order/serializers.py:469 msgid "Barcode Hash" -msgstr "Streepjescode Hash" +msgstr "Hash van Streepjescode" #: order/serializers.py:470 msgid "Unique identifier field" -msgstr "Unieke identificatieveld" +msgstr "Uniek identificatieveld" #: order/serializers.py:484 msgid "Barcode is already in use" @@ -3887,7 +3927,7 @@ msgstr "Geleverde streepjescodewaarden moeten uniek zijn" #: order/serializers.py:883 msgid "Sale price currency" -msgstr "Verkoopprijs valuta" +msgstr "Valuta verkoopprijs" #: order/serializers.py:964 msgid "No shipment details provided" @@ -3963,82 +4003,82 @@ msgstr "Order bewerken" msgid "Cancel order" msgstr "Order annuleren" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "Order plaatsen" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "Ontvang artikelen" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Ontvang Artikelen" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "Order markeren als voltooid" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "Order Voltooien" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "Order Referentie" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "Order Beschrijving" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "Order Status" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "Geen leveranciersinformatie beschikbaar" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "Afgeronde artikelen" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "Incompleet" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "Uitgegeven" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "Totale kosten" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "Totale kosten konden niet worden berekend" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "Bewerk Inkooporder" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" -msgstr "Er zijn fouten in de ingevoerde gegevens" +msgstr "Er zijn fouten in de ingediende gegevens" #: order/templates/order/order_wizard/match_parts.html:21 #: part/templates/part/import_wizard/match_references.html:21 @@ -4060,11 +4100,11 @@ msgstr "Selecteer Leveranciersonderdeel" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Rij verwijderen" @@ -4099,7 +4139,7 @@ msgstr "Inkooporder Artikelen" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "Artikel toevoegen" @@ -4116,7 +4156,7 @@ msgstr "Extra Regels" #: order/templates/order/sales_order_detail.html:47 #: order/templates/order/sales_order_detail.html:280 msgid "Add Extra Line" -msgstr "Voeg Extra Regel Toe" +msgstr "Extra Regel Toevoegen" #: order/templates/order/purchase_order_detail.html:72 msgid "Received Items" @@ -4142,12 +4182,12 @@ msgstr "Print verkooporderrapport" #: order/templates/order/sales_order_base.html:47 msgid "Print packing list" -msgstr "Druk pakbon af" +msgstr "Pakbon afdrukken" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" -msgstr "Voltooi Verzendingen" +msgstr "Verzendingen Voltooien" #: order/templates/order/sales_order_base.html:67 #: order/templates/order/sales_order_base.html:258 @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "Deze Verkooporder is niet volledig toegewezen" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "Klantreferentie" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "Verzendingen in behandeling" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "Acties" @@ -4194,7 +4234,7 @@ msgstr "Nieuwe Verzending" #: order/views.py:104 msgid "Match Supplier Parts" -msgstr "Vergelijk Leveranciersonderdelen" +msgstr "Leveranciersonderdelen Vergelijken" #: order/views.py:377 msgid "Sales order not found" @@ -4226,40 +4266,40 @@ msgstr "Uitgaande Verkooporder" msgid "Stock produced by Build Order" msgstr "Geproduceerde voorraad door Productieorder" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "Voorraad vereist voor Productieorder" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Standaard locatie" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "Totale Voorraad" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "Beschikbare Voorraad" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "In bestelling" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "De template van de parameter moet uniek zijn" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "Parameternaam" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "Parameter Eenheden" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Parameter Template" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "Parameterwaarde" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "Standaard Parameter Waarde" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "Ongeldige hoeveelheid" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "Categorie bewerken" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "Categorie bewerken" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "Categorie verwijderen" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "Categorie verwijderen" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "Nieuwe Categorie" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "Onderdeel Parameters" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "Verkoopordertoewijzingen" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "Een parameter toevoegen" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "Nieuw Stuklijstartikel" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "Assemblages" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "Productieordertoewijzingen" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "Onderdeelfabrikanten" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "Fabrikantonderdeel verwijderen" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-code weergeven" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "Label afdrukken" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "Voorraad acties" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "Toegewezen aan Productieorder" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "Toegewezen aan verkooporders" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "Datum" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "Serienummer" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "Datum" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Voorraadlocatie" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" -msgstr "Bron Inkooporder" +msgstr "Inkooporder Bron" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "Inkooporder voor dit voorraadartikel" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "Bestemming Verkooporder" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "Voorraadartikel is toegewezen aan een verkooporder" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "Voorraad tellen" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Voorraad overzetten" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "Geen fabrikant geselecteerd" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "Dit voorraadartikel is toegewezen aan Verkooporder" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "Dit voorraadartikel is toegewezen aan Productieorder" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "vorige pagina" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "volgende pagina" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "Geen locatie ingesteld" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "Locatie acties" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "Bewerk locatie" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "Verwijder locatie" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "Maak nieuwe voorraadlocatie" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "Nieuwe Locatie" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt." -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sublocaties" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "Voorraadlocaties" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "Bericht" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "Bericht indienen" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "De volgende onderdelen hebben een lage vereiste voorraad" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "Vereiste Hoeveelheid" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Sluit" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "Formaat" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "Selecteer bestandsindeling" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "Geen Voorraad Aanwezig" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "Gemiddelde inkoopprijs" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "Inclusief Op Bestelling" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "Bewerk Productieorder" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "Maak Productieorder" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "Annuleer Productieorder" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "Weet je zeker dat je de productie wilt annuleren?" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "Voorraadartikelen zijn toegewezen aan deze productieorder" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "Er staat incomplete productie open voor deze productieorder" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "Productieorder is gereed om als voltooid te markeren" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "Productieorder is onvolledig" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "Voltooi Productieoorder" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "De stuklijst bevat traceerbare onderdelen" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "Productieuitvoeren moeten individueel worden gegenereerd" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "Traceerbare onderdelen kunnen een serienummer hebben" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "Voer serienummers in om meerdere enkelvoudige productuitvoeren te genereren" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "Selecteer Productieuitvoeren" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "Voltooi Productieuitvoeren" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "Verwijder Productieuitvoeren" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "Geen productieordertoewijzingen gevonden" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "Locatie is niet opgegeven" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "Geen actieve productieuitvoeren gevonden" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "Voorraadtoewijzing bewerken" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "Voorraadtoewijzing verwijderen" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "Onvoldoende voorraad beschikbaar" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "Genoeg voorraad beschikbaar" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "Toegewezen" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "Productie voorraad" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "Voorraad order" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "Voorraad toewijzen" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Onderdelen selecteren" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "Er moet op zijn minst één onderdeel toegewezen worden" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "Specificeer voorraadtoewijzingshoeveelheid" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "Selecteer bron locatie (laat het veld leeg om iedere locatie te gebruiken)" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "Voorraadartikelen toewijzen aan Productieorder" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "Geen overeenkomende voorraadlocaties" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "Geen overeenkomende voorraadartikelen" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "Voorraadartikelen zullen automatisch worden toegewezen aan de productieorder volgens de aangegeven richtlijnen" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "Productieorder is achterstallig" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "Fabrikantonderdeel toevoegen" msgid "Edit Manufacturer Part" msgstr "Fabrikantonderdeel bewerken" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "Leverancier Toevoegen" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "Leveranciersonderdeel Toevoegen" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "Geen fabrikantenonderdelen gevonden" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "Samengesteld onderdeel" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "Geen parameters gevonden" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "Parameter bewerken" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "Parameter verwijderen" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "Parameter bewerken" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "Parameter verwijderen" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "Geen voorraadartikelen toegewezen aan deze zending" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "De volgende voorraadartikelen worden verzonden" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "Verzending Voltooien" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "Verzending Bevestigen" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "Geen verzendingen in behandeling gevonden" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "Voltooi Inkooporder" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "Order markeren als voltooid?" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "Alle artikelen zijn ontvangen" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "Deze order heeft artikelen die niet zijn gemarkeerd als ontvangen." -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "Na het voltooien van de order zijn de order en de artikelen langer bewerkbaar." -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "Inkooporder annuleren" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "Weet u zeker dat u deze inkooporder wilt annuleren?" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "Deze inkooporder kan niet geannuleerd worden" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "Geef inkooporder uit" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "Na het plaatsen van de inkooporder zijn de artikelen niet meer bewerkbaar." -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "Verkooporder annuleren" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "Na annulering van de order kan de order niet meer bewerkt worden." -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "Verkooporder aanmaken" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "Bewerk Inkooporder" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "Export Order" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "Te bestellen aantal" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "Nieuwe inkooporder" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "Toevoegen aan inkooporder" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "Geen overeenkomende inkooporders" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "Selecteer artikelen" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "Ten minste één artikel moet worden geselecteerd" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "Order Code" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "Besteld" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "Ontvang Artikelen Inkooporder" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "Geen inkooporder gevonden" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "Order is achterstallig" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "Artikelen" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "Artikel dupliceren" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "Artikel wijzigen" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "Artikel verwijderen" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "Geen artikelen gevonden" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "Totaal" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "Stukprijs" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "Totaalprijs" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "Dit artikel is achterstallig" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "Artikel ontvangen" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "Artikel dupliceren" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "Artikel bewerken" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "Artikel verwijderen" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "Kopieer regel" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "Bewerk regel" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "Verwijder regel" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "Kopieer Regel" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "Bewerk Regel" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "Verwijder Regel" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "Geen overeenkomende regel" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "Geen verkooporder gevonden" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "Ongeldige Klant" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "Verzending bewerken" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "Verzending Voltooien" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "Verzending verwijderen" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "Verzending bewerken" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "Verzending verwijderen" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "Geen overeenkomende verzending gevonden" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "Verzendingsreferentie" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "Niet verzonden" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "Volgen" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "Factuur" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "Voeg Verzending toe" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "Bevestig de voorraadtoewijzing" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "Voorraadartikel toewijzen aan Verkooporder" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "Geen verkooporder toewijzingen gevonden" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "Bewerk Voorraadtoewijzing" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "Bevestig Verwijderen" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "Verwijder Voorraadtoewijzing" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "Verzonden aan klant" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "Voorraadlocatie niet gespecificeerd" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "Wijs serienummers toe" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "Koop voorraad" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "Bereken prijs" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "Kan niet worden verwijderd omdat artikelen verzonden zijn" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "Kan niet worden verwijderd omdat artikelen toegewezen zijn" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "Wijs Serienummers Toe" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "Werk Stukprijs Bij" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "Geen overeenkomende artikelen" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "Geen overeenkomende regels" @@ -9180,241 +9278,269 @@ msgstr "Parameter data kopiëren van het originele onderdeel" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "Validatie van de BOM markeert ieder artikel als geldig" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "Selecteer Verkooporders" msgid "Sales Order(s) must be selected before printing report" msgstr "Verkooporder(s) moeten geselecteerd zijn voordat u rapport afdrukt" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "Bewerk Voorraadlocatie" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "Verwijder Voorraadlocatie" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "Toegewezen aan Verkooporder" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "Geen voorraadlocatie ingesteld" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "Voorraadartikel toegewezen aan verkooporder" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "Inkooporder bestaat niet meer" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "rijen per pagina" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 45c1070efe..410c8746f3 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "API endepunkt ikke funnet" @@ -25,26 +25,26 @@ msgstr "API endepunkt ikke funnet" msgid "Error details can be found in the admin panel" msgstr "Feildetaljer kan ikke finnes i admin-panelet" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Oppgi dato" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Notater" @@ -89,80 +89,84 @@ msgstr "Bekreftelsen på e-postaddresse" msgid "You must type the same email each time." msgstr "Du må angi samme e-post hver gang." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "Tilkoblingsfeil" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "Serveren svarte med ugyldig statuskode" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "Det har oppstått et unntak" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarte med ugylding innholdslengde verdi" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "Bildestørrelsen er for stor" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "Bildenedlasting overskred maksimal størrelse" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "Ekstern server returnerte tomt svar" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "Angitt URL er ikke en gyldig bildefil" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Dupliser serie: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Tom serienummerstreng" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ugyldig gruppeserie: {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Ugyldig gruppe: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ugyldig gruppesekvense: {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Ugyldig/ingen gruppe {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Ingen serienummer funnet" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Antall unike serienumre ({s}) må samsvare med antall ({q})" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "Uriktig formatert mønster" @@ -195,7 +199,7 @@ msgstr "Fil mangler" msgid "Missing external link" msgstr "Mangler eksternlenke" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Velg fil å legge ved" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Lenke" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Lenke til ekstern URL" @@ -229,12 +233,12 @@ msgstr "Kommenter" msgid "File comment" msgstr "Kommentar til fil" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Bruker" @@ -271,19 +275,19 @@ msgstr "Feil ved endring av navn" msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Navn" @@ -292,21 +296,23 @@ msgstr "Navn" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Beskrivelse" @@ -319,7 +325,7 @@ msgid "parent" msgstr "overkategori" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Nummer må være gyldig" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Plassert" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Fullført" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "Returnert" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Sendt" @@ -621,7 +627,7 @@ msgstr "Delt fra overordnet element" msgid "Split child item" msgstr "Delt fra underelement" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Sammenslått lagervare" @@ -687,27 +693,27 @@ msgstr "Overde må ikke overstige 100%" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Rediger brukerinformasjon" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Velg passord" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Passordfeltene må samsvare" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Systeminformasjon" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "Ugylding valg for overordnet build" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Build ordre" @@ -733,7 +739,7 @@ msgstr "Build ordre" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Build Ordre" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "Bygg ordrereferanse" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Referanse" @@ -758,7 +764,7 @@ msgstr "Referanse" msgid "Brief description of the build" msgstr "Kort beskrivelse av build" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet build" @@ -767,40 +773,40 @@ msgstr "Overordnet build" msgid "BuildOrder to which this build is allocated" msgstr "Build order som denne build er tildelt til" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Del" @@ -816,8 +822,8 @@ msgstr "Salg order referanse" msgid "SalesOrder to which this build is allocated" msgstr "Salgorder som denne build er tildelt til" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "Kilde plassering" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "Byggstatuskode" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "Batch kode" @@ -866,8 +872,8 @@ msgstr "Batch kode" msgid "Batch code for this build output" msgstr "Batch kode for denne build output" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Opprettelsesdato" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen." #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Fullført dato" @@ -888,7 +894,7 @@ msgstr "Fullført dato" msgid "completed by" msgstr "fullført av" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "Utstedt av" @@ -896,12 +902,12 @@ msgstr "Utstedt av" msgid "User who issued this build order" msgstr "Brukeren som utstede denne prosjekt order" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Ansvarlig" @@ -912,8 +918,8 @@ msgstr "Bruker ansvarlig for denne prosjekt order" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Ekstern link" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "Ingen prosjekt utgang" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "Prosjekt utdata er allerede utfylt" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "Prosjekt utdata samsvarer ikke Prosjekt Order" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Prosjektvare må spesifisere en prosjekt utdata, siden hovedvaren er markert som sporbar" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "Lagervare er overtildelt" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "Tildeling antallet må være større enn null" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "Mengden må væew 1 for serialisert lagervare" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "Valgt lagevare ikke funnet i BOM" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Prosjekt" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "Bygge for å tildele deler" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Lagervare" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "Kilde lagervare" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "Kilde lagervare" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Antall" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "Installerings informasjon" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "Målets lagervare" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "Angi antall for build utgang" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Serienummer" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Beliggenhet" @@ -1130,13 +1136,13 @@ msgstr "Beliggenhet" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "Påkrevd varer er ikke fullt tildelt" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "BOM varer" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "Varen må være på lager" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Tilgjengelig mengde ({q}) overskredet" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Måldato" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Fullført" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Salgsorder" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Utstedt av" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "Lagervare kan hentes fra alle tilgengelige steder." #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Destinasjon" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "Tildelte deler" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Opprettet" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "Fjern lager allokering" @@ -1507,7 +1516,7 @@ msgstr "Bestill nødvendige deler" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Bestill deler" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "Vedlegg" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "Tildeling fullført" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "Alle usporbar lagervarer har tildelt" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "Kopier kategori parametermaler ved oppretting av en del" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "Mal" msgid "Parts are templates by default" msgstr "Deler er maler som standard" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "Montering" msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "Komponent" @@ -1867,7 +1880,7 @@ msgstr "Komponent" msgid "Parts can be used as sub-components by default" msgstr "Deler kan bli brukt som underkomponenter som standard" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "Kjøpbar" @@ -1875,7 +1888,7 @@ msgstr "Kjøpbar" msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "Salgbar" @@ -1884,7 +1897,7 @@ msgstr "Salgbar" msgid "Parts are salable by default" msgstr "Deler er salgbare som standard" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "Sporbar" msgid "Parts are trackable by default" msgstr "Deler er sporbare som standard" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "Aktiver passord glemt" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "Ativer funskjon for glemt passord på innloggingssidene" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "Aktiver registrering" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "Aktiver SSO" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "Aktiver SSO på innloggingssidene" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "E-postadresse kreves" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "Krevt at brukeren angi e-post ved registrering" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "Auto-utfyll SSO brukere" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "Fyll automatisk ut brukeropplysninger fra SSO kontodata" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "E-post to ganger" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "Ved registrering spør brukere to ganger for e-posten" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "Passord to ganger" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "Ved registrerting, spør brukere to ganger for passord" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "Gruppe for hvilke nye brukere som er tilknyttet registrering" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "Brukere må bruke flerfaktorsikkerhet." -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "Aktiver URL integrering" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "Aktiver navigasjonsintegrering" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "Aktiver app integrasjon" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "Vis abbonerte deler" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "Vis abbonerte deler på hjemmesiden" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "Vis abbonerte kategorier" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "Vis abbonerte delkatekorier på hjemmesiden" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "Vis nyeste deler" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "Vis nyeste deler på hjemmesiden" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "Antall nylig deler" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "Vis uvaliderte BOMs" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "Vis BOMs som venter validering på hjemmesiden" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "Vis nylige lagerendringer" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "Vis nylig endret lagervarer på hjemmesiden" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "Siste lagertelling" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "Antall nylige lagervarer som skal vises på indeksside" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "Vis lav lager" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "Vis lav lagervarer på hjemmesiden" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "Vis tom lagervarer" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "Aktiv" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "Sjetong" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "Nøkkel for tilgang" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "Hemmelig" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "Delt hemmlighet for HMAC" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "Melding ID" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "Unik Id for denne meldingen" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "Vert" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "Tittel" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "Overskrift for denne meldingen" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "Brødtekst" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "Arbeidet med" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "Link til ekstern bedriftsinformasjon" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "Bilde" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "Produserer dette firmaet deler?" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "Valuta" @@ -2797,9 +2834,9 @@ msgstr "Valuta" msgid "Default currency used for this company" msgstr "Standardvaluta brukt for dette firmaet" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "Last ned bilde fra URL" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "Kunde" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "Leverandør deler" @@ -3074,13 +3111,13 @@ msgstr "Oprett ny leverandørdel" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "Ny leverandørdel" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "Bestill deler" @@ -3094,8 +3131,8 @@ msgstr "Slett deler" msgid "Delete Parts" msgstr "Slett deler" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "Produsentdeler" @@ -3103,7 +3140,7 @@ msgstr "Produsentdeler" msgid "Create new manufacturer part" msgstr "Opprett ny produsentdeler" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "Ny produsentdel" @@ -3117,10 +3154,10 @@ msgstr "Leverandør lager" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "Bestillingsorder" @@ -3140,10 +3177,10 @@ msgstr "Ny bestillingsorder" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "Salgsordre" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "Ny salgsorder" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "Tildelt lagervare" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "Leverandørliste" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "Produsenter" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Bestill del" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "Leverandører" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "Slett leverandørdeler" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "Slett" @@ -3221,14 +3258,14 @@ msgstr "Slett" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "Tildelt lagervarer" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "Valgmuligheter" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "Seriernummer eksisterer allerede" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "Er du sikker du vil kansellere?" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "Sporbare varer kan ha angitte serienummer" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index 5df6c03a1e..29f0da480c 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "Nie znaleziono punktu końcowego API" @@ -25,26 +25,26 @@ msgstr "Nie znaleziono punktu końcowego API" msgid "Error details can be found in the admin panel" msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Wprowadź dane" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Uwagi" @@ -89,80 +89,84 @@ msgstr "Potwierdzenie adresu email" msgid "You must type the same email each time." msgstr "Należy ponownie wpisać ten sam adres e-mail." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Powtórzony numer seryjny: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Pusty ciąg numeru seryjnego" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Nieprawidłowy zakres grupy: {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Nieprawidłowa grupa: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Nieprawidłowa sekwencja grupy: {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Nieprawidłowa/Brak grupy {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Nie znaleziono numerów seryjnych" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Liczba unikalnych numerów seryjnych ({s}) musi odpowiadać ilości ({q})" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "Brak pliku" msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Wybierz plik do załączenia" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Łącze" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" @@ -229,12 +233,12 @@ msgstr "Komentarz" msgid "File comment" msgstr "Komentarz pliku" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Użytkownik" @@ -271,19 +275,19 @@ msgstr "Błąd zmiany nazwy pliku" msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Nazwa" @@ -292,21 +296,23 @@ msgstr "Nazwa" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Opis" @@ -319,7 +325,7 @@ msgid "parent" msgstr "nadrzędny" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "Ścieżka" @@ -331,7 +337,7 @@ msgstr "Błąd serwera" msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Umieszczony" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Zakończono" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "Zwrócone" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Wysłane" @@ -621,7 +627,7 @@ msgstr "Podziel z pozycji nadrzędnej" msgid "Split child item" msgstr "Podziel element podrzędny" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Scalone przedmioty magazynowe" @@ -687,27 +693,27 @@ msgstr "Przedawnienie nie może przekroczyć 100 %" msgid "Invalid value for overage" msgstr "Nieprawidłowa wartość przedawnienia" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Edytuj informacje użytkownika" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Ustaw hasło" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Hasła muszą być zgodne" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Informacja systemowa" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "O InvenTree" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Zlecenie Budowy" @@ -733,7 +739,7 @@ msgstr "Zlecenie Budowy" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Zlecenia budowy" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Referencja" @@ -758,7 +764,7 @@ msgstr "Referencja" msgid "Brief description of the build" msgstr "Krótki opis budowy" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Budowa nadrzędna" @@ -767,40 +773,40 @@ msgstr "Budowa nadrzędna" msgid "BuildOrder to which this build is allocated" msgstr "Zamówienie budowy, do którego budowa jest przypisana" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Komponent" @@ -816,8 +822,8 @@ msgstr "Odwołanie do zamówienia sprzedaży" msgid "SalesOrder to which this build is allocated" msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "Lokalizacja źródła" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "Kod statusu budowania" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "Kod partii" @@ -866,8 +872,8 @@ msgstr "Kod partii" msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Data utworzenia" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Data zakończenia" @@ -888,7 +894,7 @@ msgstr "Data zakończenia" msgid "completed by" msgstr "zrealizowane przez" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "Wydany przez" @@ -896,12 +902,12 @@ msgstr "Wydany przez" msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Odpowiedzialny" @@ -912,8 +918,8 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Link Zewnętrzny" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "Nie określono danych wyjściowych budowy" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "Budowanie wyjścia jest już ukończone" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "Nie znaleziono wybranego elementu magazynowego w BOM" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Budowa" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Element magazynowy" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "Lokalizacja magazynowania przedmiotu" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Ilość" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "Zainstaluj do" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Numer seryjny" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Lokalizacja" @@ -1130,13 +1136,13 @@ msgstr "Lokalizacja" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "Status" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "Akceptuj niekompletne" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "Element BOM" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "Towar musi znajdować się w magazynie" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Magazyn, z którego mają być pozyskane elementy (pozostaw puste, aby pobrać z dowolnej lokalizacji)" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "Wyklucz lokalizację" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "Wyklucz produkty magazynowe z wybranej lokalizacji" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Towary magazynowe w wielu lokalizacjach mogą być stosowane zamiennie" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "Zastępczy magazyn" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "Anuluj Budowę" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Data docelowa" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "Zaległe" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Zakończone" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Zamówienie zakupu" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Dodane przez" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Przeznaczenie" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "Partia" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Utworzony" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "Przydziel zapasy do budowy" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "Cofnij przydział zapasów" @@ -1507,7 +1516,7 @@ msgstr "Zamów wymagane komponenty" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Zamów komponent" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "Drukuj etykiety" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "Załączniki" msgid "Build Notes" msgstr "Notatki tworzenia" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "Nowe zlecenie budowy" @@ -1609,6 +1618,10 @@ msgstr "Wydrukuj zlecenia budowy" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "Szablon" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "Złożenie" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "Komponent" @@ -1867,7 +1880,7 @@ msgstr "Komponent" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "Możliwość zakupu" @@ -1875,7 +1888,7 @@ msgstr "Możliwość zakupu" msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "Możliwość sprzedaży" @@ -1884,7 +1897,7 @@ msgstr "Możliwość sprzedaży" msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "Możliwość śledzenia" msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1075 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 msgid "Enable label printing" msgstr "Włącz drukowanie etykiet" -#: common/models.py:1075 +#: common/models.py:1081 msgid "Enable label printing from the web interface" msgstr "Włącz drukowanie etykiet z interfejsu WWW" -#: common/models.py:1081 +#: common/models.py:1087 msgid "Label Image DPI" msgstr "DPI etykiety" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "Włącz raporty" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "Tryb Debugowania" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "Domyślna wielkość strony dla raportów PDF" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "Włącz generowanie raportów testów" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "dni" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "Włącz opcję zapomnianego hasła" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "Włącz funkcję zapomnianego hasła na stronach logowania" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "Włącz rejestrację" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "Włącz SSO" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "Włącz SSO na stronach logowania" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "Adres e-mail jest wymagany" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "Autouzupełnianie użytkowników SSO" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "E-mail dwa razy" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "Hasło dwukrotnie" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "Grupuj przy rejestracji" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "Wymuś MFA" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych." -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "Sprawdź wtyczki przy starcie" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "Włącz integrację URL" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "Włącz wtyczki, aby dodać ścieżki URL" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "Włącz integrację z aplikacją" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "Włącz wtyczki, aby dodać aplikacje" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "Pokaż obserwowane części" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "Pokaż obserwowane części na stronie głównej" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "Pokaż obserwowane kategorie" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "Pokaż obserwowane kategorie części na stronie głównej" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "Pokaż najnowsze części" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "Pokaż najnowsze części na stronie głównej" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "Pokaż niski stan magazynowy" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "Pokaż elementy o niskim stanie na stronie głównej" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "Pokaż wymagany stan zapasów" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "Szukaj części" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "Ukryj nieaktywne części" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "Stały pasek nawigacyjny" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "Format daty" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "Preferowany format wyświetlania dat" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planowanie komponentów" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "Cena" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "Punkt końcowy" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "Aktywny" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "Sekret" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "Współdzielony sekret dla HMAC" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "Id wiadomości" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "Unikalny identyfikator dla tej wiadomości" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "Host, od którego otrzymano tę wiadomość" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "Nagłówek" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "Nagłówek tej wiadomości" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "Zawartość" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "Punkt kontaktowy" msgid "Link to external company information" msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "Obraz" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "Czy to przedsiębiorstwo produkuje części?" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "Waluta" @@ -2797,9 +2834,9 @@ msgstr "Waluta" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "Część bazowa" @@ -2810,7 +2847,7 @@ msgstr "Wybierz część" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "Wybierz producenta" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Komponent producenta" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "Wartość" @@ -2868,10 +2905,10 @@ msgstr "Wartość" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "Jednostki" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "Dostawca" @@ -2902,8 +2939,8 @@ msgstr "Wybierz dostawcę" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "Uwaga" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "Opakowanie" @@ -2948,7 +2985,7 @@ msgstr "Opakowanie" msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "wielokrotność" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "Dostępne" @@ -2992,12 +3029,12 @@ msgstr "Kod Waluty" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "Firma" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "Utwórz zamówienie zakupu" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "Pobierz obraz z adresu URL" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "Klient" @@ -3064,7 +3101,7 @@ msgstr "Pobierz obraz" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "Komponenty dostawcy" @@ -3074,13 +3111,13 @@ msgstr "Utwórz nowego dostawcę części" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "Nowy dostawca części" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "Zamów komponenty" @@ -3094,8 +3131,8 @@ msgstr "Usuń części" msgid "Delete Parts" msgstr "Usuń części" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "Części producenta" @@ -3103,7 +3140,7 @@ msgstr "Części producenta" msgid "Create new manufacturer part" msgstr "Utwórz nową część producenta" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "Nowa część producenta" @@ -3117,10 +3154,10 @@ msgstr "Zapasy dostawcy" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "Zamówienia zakupu" @@ -3140,10 +3177,10 @@ msgstr "Nowe zamówienie zakupu" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "Lista dostawców" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "Producenci" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Zamów komponent" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "Dostawcy" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "Usuń" @@ -3221,14 +3258,14 @@ msgstr "Usuń" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametry" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "Nowy parametr" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "Usuń parametry" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "Dodaj parametr" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "Zamów komponent" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "Utwórz nowy towar" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "Nowy towar" @@ -3327,7 +3364,7 @@ msgstr "Informacja cenowa" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "Edytuj przedział cenowy" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "Stan" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "Cennik" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "Towary" @@ -3408,7 +3444,7 @@ msgstr "Nowy dostawca" msgid "New Manufacturer" msgstr "Now producent" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "Klienci" @@ -3417,7 +3453,7 @@ msgstr "Klienci" msgid "New Customer" msgstr "Nowy klient" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "Firmy" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "Opis Zamówienia" @@ -3522,8 +3562,8 @@ msgstr "Status zamówienia zakupu" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "Data wysyłki" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "Zamówienie" @@ -3650,11 +3690,11 @@ msgstr "Zamówienie" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "Zlecenie zakupu" @@ -3662,9 +3702,9 @@ msgstr "Zlecenie zakupu" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "Odebrane" @@ -3673,9 +3713,9 @@ msgstr "Odebrane" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "Cena zakupu" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "Edytuj zamówienie" msgid "Cancel order" msgstr "Anuluj zamówienie" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "Złóż zamówienie" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "Oznacz zamówienie jako zakończone" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "Kompletne zamówienie" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "Numer zamówienia" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "Opis zamówienia" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "Status zamówienia" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "Niekompletny" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "Wydany" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "Edytuj zamówienie zakupu" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "Wybierz dostawcę części" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Usuń wiersz" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "Dodaj element zamówienia" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "Oczekujące przesyłki" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "Akcje" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "Ważny" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "Ta opcja musi być zaznaczona" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "Musi być większe niż zero" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "Musi być prawidłową ilością" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "To pole jest wymagane" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Domyślna lokalizacja" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "Dostępna ilość" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "W Zamówieniu" @@ -4296,516 +4336,528 @@ msgstr "Domyślne słowa kluczowe" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategoria komponentu" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "Kategorie części" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "Części" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "Nieprawidłowy wybór dla części nadrzędnej" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "Część '{p1}' jest używana w BOM dla '{p2}' (rekursywne)" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "Nazwa komponentu" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "Czy szablon" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "Czy ta część stanowi szablon części?" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "Czy ta część jest wariantem innej części?" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "Wariant" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "Opis komponentu" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Słowa kluczowe" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "Kategoria" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "Wersja" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "Domyślne wygasanie" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "Czy ten komponent może być zbudowany z innych komponentów?" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "Czy ta część może być użyta do budowy innych części?" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "Czy ta część wymaga śledzenia każdego towaru z osobna?" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "Czy to wirtualna część, taka jak oprogramowanie lub licencja?" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "Tworzenie użytkownika" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "Testowy opis" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "Wprowadź opis do tego testu" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "Wymagane" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "Wymaga wartości" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "Wymaga załącznika" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "Dane" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "Wartość parametru" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "ID komponentu" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "Unikalny wartość ID komponentu" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "Nazwa komponentu" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "IPN komponentu" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "Wartość IPN części" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "Poziom" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "Opcjonalne" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "Notatki pozycji BOM" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "Dziedziczone" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "Zezwalaj na warianty" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "Część zastępcza" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "Część 1" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "Część 2" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "Waluta zakupu tego towaru" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "Usuń istniejące dane" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "Pomiń nieprawidłowe wiersze" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "Wyczyść istniejący BOM" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "Nie podano ilości" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "Nieprawidłowa ilość" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "Usuń elementy" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "Masz włączone powiadomienia dla tej kategorii" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "Włącz powiadomienia dla tej kategorii" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "Akcje kategorii" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "Edytuj kategorię" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "Edytuj kategorię" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "Usuń kategorię" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "Usuń kategorię" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "Stwórz nową kategorię komponentów" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "Nowa kategoria" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "Ścieżka kategorii" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "Kategoria najwyższego poziomu" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Podkategorie" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "Części (w tym podkategorie)" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "Utwórz nową część" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "Nowy komponent" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "Opcje" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "Ustaw kategorię" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "Ustaw kategorię" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "Drukuj etykiety" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "Parametry części" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "Utwórz nową kategorię części" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "Utwórz część" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "Utwórz kolejną część po tej" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "Część utworzona pomyślnie" @@ -4947,7 +4999,7 @@ msgstr "Część utworzona pomyślnie" msgid "Import Parts" msgstr "Importuj Części" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "Duplikuj część" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "Zapasy części" -#: part/templates/part/detail.html:54 +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" +msgstr "Odśwież" + +#: part/templates/part/detail.html:59 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:59 +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "Warianty Części" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "Utwórz nowy wariant" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "Nowy wariant" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "Powiązane części" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "Dodaj powiązane" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Zestawienie materiałowe" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "Akcje eksportu" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "Eksportuj BOM" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "Drukuj raport BOM" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "Wgraj BOM" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "Weryfikuj BOM" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "Nowa część w BOM" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "Dodaj część do BOM" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "Złożenia" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "Dostawcy Części" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "Producenci części" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "Powiązane części" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "Dodaj powiązaną część" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "Włącz powiadomienia dla tej części" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "Akcje kodów kreskowych" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Pokaż Kod QR" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "Drukuj etykietę" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "Pokaż informacje o cenach" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "Akcje magazynowe" @@ -5252,7 +5312,7 @@ msgstr "Część jest wirtualna (nie fizyczna)" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "Nieaktywny" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "Na stanie" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "Przypisane do zamówień sprzedaży" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "Ostatni numer seryjny" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "Szukaj numeru seryjnego" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "Całkowity Koszt" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "Brak dostępnych cen dostawców" @@ -5375,6 +5435,18 @@ msgstr "Cena wewnętrzna" msgid "No pricing information is available for this part." msgstr "Brak dostępnych informacji o cenach dla tej części." +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "Data" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "Warianty" @@ -5423,7 +5495,7 @@ msgstr "Pokaż cenę sprzedaży" msgid "Calculation parameters" msgstr "Parametry obliczeniowe" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "Koszty dostawcy" @@ -5461,8 +5533,8 @@ msgstr "Koszt sprzedaży" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "Brak w magazynie" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Nieznana baza danych" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "Konfiguracja wtyczki" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "Konfiguracja wtyczek" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "Klucz" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "Klucz wtyczki" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "Nazwa wtyczki" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "Czy wtyczka jest aktywna" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "Wtyczka" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "Numer Seryjny" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "Wynik" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "Data" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "Zaliczone" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "Zainstalowane elementy" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "Numer seryjny" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Właściciel" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "Wybierz właściciela" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "Nadrzędny towar" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "Wybierz pasującą część dostawcy dla tego towaru" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "Zainstalowane w" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "Data ważności" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "Usuń po wyczerpaniu" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "Ilość nie może przekraczać dostępnej ilości towaru ({n})" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "Nazwa testu" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "Cena zakupu tego towaru" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "Numer seryjny już istnieje" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "Przelicz stan magazynowy" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "Usuń stan magazynowy" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Przenieś stan magazynowy" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "Odinstaluj" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "Zainstaluj" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "Skaner kodów" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "Element nadrzędny" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "Nie ustawiono producenta" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "Tylko do odczytu" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "poprzednia strona" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "następna strona" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "Lokacje nie są ustawione" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "Testy" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "Termin minął" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "Ostatnia aktualizacja" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "Ostrzeżenie" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "Wróć do stanu magazynowego" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "Edytuj lokację" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "Nowa lokalizacja" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "Ścieżka lokalizacji" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Podlokalizacje" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "Lokacje stanu magazynowego" @@ -6872,15 +6941,15 @@ msgstr "Otwórz w nowej karcie" msgid "Part Settings" msgstr "Ustawienia części" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "Import części" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "Import części" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "Wtyczki" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "Instaluj wtyczkę" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "Autor" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "Wersja" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "Nieaktywne wtyczki" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "Błąd stosu wtyczki" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "Etap" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "Wiadomość" @@ -6996,11 +7065,11 @@ msgstr "Hash commitu" msgid "Commit Message" msgstr "Wiadomość commitu" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "Status podpisu" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "Klucz podpisu" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "Nie znaleziono szablonów parametrów kategorii" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "Edytuj szablon" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "Usuń szablon" @@ -7068,19 +7137,19 @@ msgstr "Nie znaleziono szablonów parametrów części" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7662,7 +7731,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "Wymagana ilość" @@ -7676,6 +7745,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "Minimalna ilość" @@ -7828,7 +7898,7 @@ msgstr "" msgid "Unlink" msgstr "Rozłącz" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7877,10 +7947,10 @@ msgstr "Wyświetl dane wiersza" msgid "Row Data" msgstr "Dane wiersza" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Zamknij" @@ -7890,12 +7960,12 @@ msgid "Download BOM Template" msgstr "Pobierz szablon BOM-u" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "Wybierz format pliku" @@ -7951,390 +8021,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "Dodaj zamiennik" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "Zobacz BOM" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "Czy na pewno przerwać tę budowę?" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "Ostatni numer seryjny" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "Utwórz zlecenie budowy" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "Wyjście" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "Ilość za" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "Przydzielono" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Wybierz części" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "Wybierz" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "Brak informacji o użytkowniku" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8350,11 +8420,11 @@ msgstr "Dodaj część producenta" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "Dodaj dostawcę" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8403,34 +8473,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "Nie znaleziono parametrów" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "Edytuj Parametr" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "Usuń parametr" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "Edytuj Parametr" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "Usuń parametr" @@ -8509,44 +8579,44 @@ msgstr "Pozostaw ten formularz otwarty" msgid "Enter a valid number" msgstr "Wprowadź poprawny numer" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Istnieją błędy formularza" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "Nie znaleziono wyników" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "Wyszukiwanie" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "Wyczyść wejście" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "Kolumna pliku" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "Nazwa pola" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "Wybór Kolumn" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "TAK" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "Nie" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8555,7 +8625,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "Wybierz przedmioty magazynowe" @@ -8725,381 +8795,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "Oznacz zamówienie jako zakończone?" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "Edytuj zamówienie zakupu" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "Kod zamówienia" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "Zamówione" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "Ilość do otrzymania" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "Potwierdź odbiór elementów" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "Przedmioty" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "Razem" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "Cena jednostkowa" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "Cena całkowita" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "Nie znaleziono zamówień sprzedaży" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "Nieprawidłowy klient" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "Edytuj wysyłkę" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "Kompletna wysyłka" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "Usuń wysyłkę" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "Edytuj wysyłkę" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "Usuń wysyłkę" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "Nie odnaleziono pasujących przesyłek" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "Numer referencyjny przesyłki" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "Nie wysłano" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "Śledzenie" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "Potwierdź przydział zapasów" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "Cena zakupu" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "Oblicz cenę" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "Zaktualizuj cenę jednostkową" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9183,241 +9281,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "Edytuj kategorię części" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "Czy na pewno chcesz usunąć tę kategorię części?" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "Edytuj część" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "Część zmodyfikowana" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "Utwórz wariant części" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "Masz włączone powiadomienia dla tej części" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "Masz włączone powiadomienia dla tej części" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "Włącz powiadomienia dla tej części" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "Zostałeś wypisany z powiadomień dla tej części" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "Obserwowane części" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "Nie znaleziono wariantów" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "Nie znaleziono części" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "Brak kategorii" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "Wyświetl jako listę" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "Wyświetl jako siatkę" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "Ustaw kategorię części" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "Wyświetl jako drzewo" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "Obserwowana kategoria" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "Nie znaleziono informacji o ${human_name}" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "Edytuj ${human_name}" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "Usuń ${human_name}" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "Cena jednostkowa" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9491,11 +9617,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9511,376 +9637,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "Czy na pewno chcesz skasować tą lokację?" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "Czy na pewno chcesz usunąć tą część?" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "Przenieś" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "Weź" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "Dodaj stan" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "Dodaj" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "Usuń stan magazynowy" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "BRAK WYNIKÓW" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "Dodaj wynik testu" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "W produkcji" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "Kod statusu musi być wybrany" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "Szczegóły" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "Lokalizacja już nie istnieje" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "Zamówienie zakupu już nie istnieje" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "Klient już nie istnieje" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "Element magazynowy już nie istnieje" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "Dodano" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "Usunięto" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10136,61 +10262,57 @@ msgstr "Eksportuj dane tabeli" msgid "Select File Format" msgstr "Wybierz format pliku" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "Wczytywanie danych" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "wierszy na stronę" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "Pokaż wszystkie wiersze" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "Pokazywane" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "do" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "z" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "wierszy" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Szukaj" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "Brak pasujących wyników" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "Ukryj/Pokaż stronicowanie" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "Odśwież" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "Przełącz" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "Kolumny" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "Wszystkie" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index 1d554c59c2..3c5cc7d558 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "API endpoint não encontrado" @@ -25,37 +25,37 @@ msgstr "API endpoint não encontrado" msgid "Error details can be found in the admin panel" msgstr "Detalhes do erro podem ser encontrados no painel de administrador" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Insira uma Data" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" -msgstr "" +msgstr "Anotações" #: InvenTree/format.py:142 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" -msgstr "" +msgstr "Valor '{name}' não está no formato correto" #: InvenTree/format.py:152 msgid "Provided value does not match required pattern: " -msgstr "" +msgstr "O valor fornecido não corresponde ao padrão exigido: " #: InvenTree/forms.py:133 msgid "Enter password" @@ -89,80 +89,84 @@ msgstr "Confirmação do endereço de email" msgid "You must type the same email each time." msgstr "Voce precisa digital o mesmo email." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" -msgstr "" +msgstr "Erro de conexão" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" -msgstr "" +msgstr "O servidor respondeu com código de status inválido" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" -msgstr "" - -#: InvenTree/helpers.py:186 -msgid "Server responded with invalid Content-Length value" -msgstr "" +msgstr "Ocorreu uma exceção" #: InvenTree/helpers.py:189 -msgid "Image size is too large" -msgstr "" +msgid "Server responded with invalid Content-Length value" +msgstr "O servidor respondeu com valor inválido de '{Content-Length}'" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:192 +msgid "Image size is too large" +msgstr "Tamanho da imagem muito grande" + +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Numero serial duplicado: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Quantidade invalida" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Numero serial em branco" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Numero de grupo invalido:{g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Grupo invalido:{g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Sequencia de grupo invalida:{g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Invalido/sem grupo {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Nenhum numero serial encontrado" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Numero de numeros seriais ({s}) precisa bater com quantidade ({q})" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "Arquivo nao encontrado" msgid "Missing external link" msgstr "Link externo nao encontrado" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Selecione arquivo para anexar" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Link" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Link para URL externa" @@ -229,12 +233,12 @@ msgstr "Comentario" msgid "File comment" msgstr "Comentario sobre arquivo" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Usuario" @@ -271,19 +275,19 @@ msgstr "Erro renomeando o arquivo" msgid "Invalid choice" msgstr "Escolha invalida" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Nome" @@ -292,21 +296,23 @@ msgstr "Nome" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Descricao" @@ -319,7 +325,7 @@ msgid "parent" msgstr "parent" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "Erro de servidor" msgid "An error has been logged by the server." msgstr "Log de erro salvo pelo servidor." -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Preicsa ser um numero valido" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -621,7 +627,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po index 6a5ca70fea..cbcbdf369b 100644 --- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 00:21+0000\n" +"POT-Creation-Date: 2022-08-24 21:34+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "" @@ -26,26 +26,26 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -90,80 +90,84 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:173 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:177 InvenTree/helpers.py:182 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:179 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:187 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:190 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:202 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:207 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:215 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:557 +#: InvenTree/helpers.py:598 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:564 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:605 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:567 +#: InvenTree/helpers.py:608 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:599 +#: InvenTree/helpers.py:640 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:602 +#: InvenTree/helpers.py:643 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:630 +#: InvenTree/helpers.py:671 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:638 +#: InvenTree/helpers.py:679 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:644 +#: InvenTree/helpers.py:685 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:648 +#: InvenTree/helpers.py:689 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/mixins.py:72 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -196,7 +200,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -208,16 +212,16 @@ msgstr "" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "" @@ -230,12 +234,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1636 -#: common/models.py:1637 common/models.py:1860 common/models.py:1861 -#: common/models.py:2123 common/models.py:2124 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2573 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "" @@ -272,19 +276,19 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1846 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1858 templates/js/translated/stock.js:2344 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "" @@ -293,21 +297,23 @@ msgstr "" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1877 -#: templates/js/translated/part.js:1946 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2356 templates/js/translated/stock.js:2410 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "" @@ -320,7 +326,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1883 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -332,7 +338,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "" @@ -517,7 +523,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -538,7 +544,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -622,7 +628,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -725,7 +731,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -744,14 +750,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -759,7 +765,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -768,40 +774,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 templates/InvenTree/search.html:80 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2436 -#: templates/js/translated/stock.js:2631 templates/js/translated/stock.js:2765 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -817,8 +823,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -859,7 +865,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -867,8 +873,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -881,7 +887,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -889,7 +895,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -897,12 +903,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -913,8 +919,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:199 msgid "External Link" msgstr "" @@ -931,80 +937,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:171 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2509 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1668 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1012,42 +1018,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:294 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2091 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2356 -#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2643 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1071,10 +1077,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1087,8 +1093,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1104,7 +1110,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:569 +#: build/serializers.py:278 stock/api.py:577 msgid "The following serial numbers already exist" msgstr "" @@ -1113,17 +1119,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:384 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2450 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1131,13 +1137,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2527 templates/js/translated/stock.js:2659 +#: order/serializers.py:465 stock/templates/stock/item_base.html:417 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1165,117 +1171,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1315,63 +1325,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1379,42 +1397,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:364 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1431,7 +1440,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1444,20 +1453,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:164 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2666 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1477,7 +1486,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1508,7 +1517,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1561,12 +1570,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1580,7 +1589,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1590,15 +1599,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1610,6 +1619,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1759,821 +1772,853 @@ msgstr "" msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:880 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:880 +msgid "Tree Depth" msgstr "" #: common/models.py:881 +msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." +msgstr "" + +#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:891 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:887 +#: common/models.py:897 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:888 +#: common/models.py:898 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:894 +#: common/models.py:904 msgid "IPN Regex" msgstr "" -#: common/models.py:895 +#: common/models.py:905 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:899 +#: common/models.py:909 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:900 +#: common/models.py:910 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:906 +#: common/models.py:916 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:907 +#: common/models.py:917 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:913 +#: common/models.py:923 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:914 +#: common/models.py:924 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:920 +#: common/models.py:930 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:921 +#: common/models.py:931 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:927 +#: common/models.py:937 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:928 +#: common/models.py:938 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:934 +#: common/models.py:944 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:935 +#: common/models.py:945 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:941 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" msgstr "" -#: common/models.py:942 +#: common/models.py:952 msgid "Parts are templates by default" msgstr "" -#: common/models.py:948 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" msgstr "" -#: common/models.py:949 +#: common/models.py:959 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:955 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" -#: common/models.py:956 +#: common/models.py:966 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:962 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" -#: common/models.py:963 +#: common/models.py:973 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:969 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" -#: common/models.py:970 +#: common/models.py:980 msgid "Parts are salable by default" msgstr "" -#: common/models.py:976 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 msgid "Trackable" msgstr "" -#: common/models.py:977 +#: common/models.py:987 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:983 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 msgid "Virtual" msgstr "" -#: common/models.py:984 +#: common/models.py:994 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:990 +#: common/models.py:1000 msgid "Show Import in Views" msgstr "" -#: common/models.py:991 +#: common/models.py:1001 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:997 +#: common/models.py:1007 msgid "Show Price in Forms" msgstr "" -#: common/models.py:998 +#: common/models.py:1008 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1009 +#: common/models.py:1019 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1010 +#: common/models.py:1020 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1021 +#: common/models.py:1031 msgid "Show Price History" msgstr "" -#: common/models.py:1022 +#: common/models.py:1032 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1028 +#: common/models.py:1038 msgid "Show related parts" msgstr "" -#: common/models.py:1029 +#: common/models.py:1039 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1035 +#: common/models.py:1045 msgid "Create initial stock" msgstr "" -#: common/models.py:1036 +#: common/models.py:1046 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1042 +#: common/models.py:1052 msgid "Internal Prices" msgstr "" -#: common/models.py:1043 +#: common/models.py:1053 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1049 +#: common/models.py:1059 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1050 +#: common/models.py:1060 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1056 +#: common/models.py:1066 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1057 +#: common/models.py:1067 msgid "Format to display the part name" msgstr "" -#: common/models.py:1064 +#: common/models.py:1074 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1075 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 msgid "Enable label printing" msgstr "" -#: common/models.py:1065 +#: common/models.py:1081 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1071 +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1072 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1081 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1082 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1088 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1089 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1095 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1096 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1106 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1107 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1113 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1114 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1120 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1121 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1126 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1127 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1133 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1134 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1140 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1141 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1143 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1148 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1149 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1155 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1156 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1162 -msgid "Build Order Reference Pattern" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1163 -msgid "Required pattern for generating Build Order reference field" -msgstr "" - -#: common/models.py:1169 -msgid "Sales Order Reference Pattern" -msgstr "" - -#: common/models.py:1170 -msgid "Required pattern for generating Sales Order reference field" -msgstr "" - -#: common/models.py:1176 -msgid "Sales Order Default Shipment" -msgstr "" - -#: common/models.py:1177 -msgid "Enable creation of default shipment with sales orders" -msgstr "" - -#: common/models.py:1183 -msgid "Purchase Order Reference Pattern" +#: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1184 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1191 -msgid "Enable password forgot" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1192 -msgid "Enable password forgot function on the login pages" +msgid "Required pattern for generating Sales Order reference field" msgstr "" #: common/models.py:1198 -msgid "Enable registration" +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1199 -msgid "Enable self-registration for users on the login pages" +msgid "Enable creation of default shipment with sales orders" msgstr "" #: common/models.py:1205 -msgid "Enable SSO" +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Enable SSO on the login pages" -msgstr "" - -#: common/models.py:1212 -msgid "Email required" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1213 -msgid "Require user to supply mail on signup" +msgid "Enable password forgot" msgstr "" -#: common/models.py:1219 -msgid "Auto-fill SSO users" +#: common/models.py:1214 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1220 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable registration" msgstr "" -#: common/models.py:1226 -msgid "Mail twice" +#: common/models.py:1221 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1227 -msgid "On signup ask users twice for their mail" +msgid "Enable SSO" msgstr "" -#: common/models.py:1233 -msgid "Password twice" +#: common/models.py:1228 +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1234 -msgid "On signup ask users twice for their password" +msgid "Email required" msgstr "" -#: common/models.py:1240 -msgid "Group on signup" +#: common/models.py:1235 +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1241 -msgid "Group to which new users are assigned on registration" +msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1247 -msgid "Enforce MFA" +#: common/models.py:1242 +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1248 -msgid "Users must use multifactor security." +msgid "Mail twice" msgstr "" -#: common/models.py:1254 -msgid "Check plugins on startup" +#: common/models.py:1249 +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1255 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Password twice" +msgstr "" + +#: common/models.py:1256 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1262 +msgid "Group on signup" msgstr "" #: common/models.py:1263 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1269 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1270 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1276 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1277 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1264 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1271 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1272 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1279 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1280 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1287 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1288 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1295 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1296 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1313 common/models.py:1629 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1335 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1336 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1342 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1343 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1349 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1350 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1356 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1357 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1363 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1364 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1370 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1371 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1377 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1378 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1384 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1385 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1391 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1392 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1398 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1399 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1405 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1406 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1412 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1413 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1419 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1420 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1426 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1427 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1433 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1434 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1440 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1441 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1447 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1448 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1454 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1455 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1461 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1462 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1468 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1469 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1475 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1476 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1482 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1483 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1489 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1490 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1496 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1497 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1503 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1504 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1510 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1517 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1518 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1524 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1525 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1531 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1532 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1538 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1539 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1545 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1546 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1552 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1553 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1559 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1560 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1566 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1567 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1573 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1574 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1580 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1581 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1587 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1588 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1594 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1595 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1609 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1610 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1669 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1676 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2096 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1677 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1837 common/models.py:2015 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1838 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1847 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1852 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2581,67 +2626,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1853 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1867 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1868 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1875 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1876 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1982 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1983 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1991 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:1992 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1999 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2000 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2006 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2007 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2021 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2022 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2748,7 +2793,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2781,8 +2826,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2790,9 +2835,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:142 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2803,7 +2848,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:206 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2821,8 +2866,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2841,7 +2886,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:216 msgid "Manufacturer Part" msgstr "" @@ -2851,9 +2896,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2861,10 +2906,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2878,13 +2923,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:223 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2895,8 +2940,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2917,23 +2962,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:239 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2941,7 +2986,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2952,9 +2997,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2990,7 +3035,7 @@ msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3027,12 +3072,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:395 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2491 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3057,7 +3102,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:118 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3067,13 +3112,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3088,7 +3133,7 @@ msgid "Delete Parts" msgstr "" #: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3096,7 +3141,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3110,10 +3155,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3133,10 +3178,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3152,7 +3197,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,7 +3213,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3199,14 +3244,14 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3214,14 +3259,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3230,7 +3275,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3251,10 +3296,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:232 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3265,7 +3310,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3298,13 +3343,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3320,7 +3365,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2168 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3329,12 +3374,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2178 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2192 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3356,14 +3401,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:151 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3382,14 +3426,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2368 users/models.py:40 +#: templates/InvenTree/search.html:153 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3410,7 +3454,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3483,6 +3527,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3515,8 +3563,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3573,7 +3621,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3635,7 +3683,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3643,11 +3691,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:178 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2472 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3655,9 +3703,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3666,9 +3714,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:185 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3842,11 +3890,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3956,77 +4004,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4053,11 +4101,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4092,7 +4140,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4138,7 +4186,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4152,7 +4200,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4176,8 +4224,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4207,52 +4255,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:505 +#: part/api.py:514 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:525 +#: part/api.py:534 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:543 +#: part/api.py:552 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:575 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:695 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:696 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:702 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1125 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1129 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1144 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1175 part/api.py:1179 part/api.py:1194 part/api.py:1198 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4261,14 +4309,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4289,516 +4337,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1890 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1941 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:1950 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:1958 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:1965 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4830,7 +4890,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4838,101 +4898,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4940,7 +5000,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4968,138 +5028,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:558 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5162,19 +5230,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5183,8 +5251,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5245,7 +5313,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5266,22 +5334,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:371 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5294,7 +5362,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:327 msgid "Search for serial number" msgstr "" @@ -5333,7 +5401,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5368,6 +5436,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5416,7 +5496,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5454,8 +5534,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5509,11 +5589,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5620,51 +5700,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5736,12 +5820,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5842,12 +5926,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:316 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5856,22 +5940,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2400 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5886,327 +5963,327 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2649 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" -#: stock/api.py:521 +#: stock/api.py:529 msgid "Quantity is required" msgstr "" -#: stock/api.py:528 +#: stock/api.py:536 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:553 +#: stock/api.py:561 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:246 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:423 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6303,7 +6380,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2793 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6311,7 +6388,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6342,195 +6419,191 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 -msgid "Remove stock" -msgstr "" - -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:85 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:101 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:101 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:157 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:192 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:210 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:250 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:265 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:278 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:286 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:294 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:300 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:322 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:322 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:331 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:331 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:344 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:388 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:403 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:427 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:427 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:429 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:429 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:436 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:441 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:445 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:515 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:588 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:591 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:592 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:600 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:628 msgid "Return to Stock" msgstr "" @@ -6542,59 +6615,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:165 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6865,15 +6938,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6885,47 +6958,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6989,11 +7062,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7035,12 +7108,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7061,19 +7134,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7142,7 +7215,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7654,7 +7727,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7668,6 +7741,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7820,7 +7894,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7869,10 +7943,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7882,12 +7956,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7943,390 +8017,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1851 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2338 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2579 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8342,11 +8416,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8395,34 +8469,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8501,44 +8575,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8547,7 +8621,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8717,381 +8791,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2070 templates/js/translated/part.js:2423 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9175,237 +9277,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1786 -#: templates/js/translated/stock.js:2299 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:2318 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1869 +#: templates/js/translated/part.js:1938 +msgid "Load Subcategories" +msgstr "" + +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1927 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1978 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1979 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2007 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2021 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2046 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2103 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2104 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2218 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2251 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2277 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2347 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2366 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9479,11 +9613,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9499,372 +9633,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/stock.js:2404 +msgid "Load Subloactions" +msgstr "" + +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2441 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2463 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2482 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2501 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2519 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2626 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2713 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2726 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2747 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2751 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2753 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2766 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10162,10 +10300,6 @@ msgstr "" msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - #: templates/js/translated/tables.js:561 msgid "Toggle" msgstr "" @@ -10322,6 +10456,10 @@ msgstr "" msgid "Remove from selected stock items" msgstr "" +#: templates/stock_table.html:46 +msgid "Remove stock" +msgstr "" + #: templates/stock_table.html:47 msgid "Stocktake selected stock items" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index afdb862698..b3f2252160 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "Конечная точка API не обнаружена" @@ -25,26 +25,26 @@ msgstr "Конечная точка API не обнаружена" msgid "Error details can be found in the admin panel" msgstr "Подробности об ошибке можно найти в панели администратора" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Введите дату" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Заметки" @@ -89,80 +89,84 @@ msgstr "Подтверждение адреса электронной почт msgid "You must type the same email each time." msgstr "Вы должны вводить один и тот же адрес электронной почты." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "Изображение слишком большое" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Повторяющийся серийный номер: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "недопустимое количество" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Пустая строка серийного номера" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Некорректный идентификатор группы {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Недопустимая/несуществующая группа {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Серийных номеров не найдено" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "Файл не найден" msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Выберите файл для вложения" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Ссылка" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Ссылка на внешний URL" @@ -229,12 +233,12 @@ msgstr "Комментарий" msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Пользователь" @@ -271,19 +275,19 @@ msgstr "Ошибка переименования файла" msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Название" @@ -292,21 +296,23 @@ msgstr "Название" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Описание" @@ -319,7 +325,7 @@ msgid "parent" msgstr "родитель" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "Путь" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Должно быть действительным номером" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Размещены" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Готово" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "Возвращено" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Доставлено" @@ -621,7 +627,7 @@ msgstr "Отделить от родительского элемента" msgid "Split child item" msgstr "Разбить дочерний элемент" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Объединенные позиции на складе" @@ -687,27 +693,27 @@ msgstr "Перегрузка не может превысить 100%" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Редактировать информацию о пользователе" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Установить пароль" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Пароли должны совпадать" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Информация о системе" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "Неверный выбор для родительской сборки #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Порядок сборки" @@ -733,7 +739,7 @@ msgstr "Порядок сборки" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Порядок сборки" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "Ссылка на заказ" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Отсылка" @@ -758,7 +764,7 @@ msgstr "Отсылка" msgid "Brief description of the build" msgstr "Краткое описание сборки" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Родительская сборка" @@ -767,40 +773,40 @@ msgstr "Родительская сборка" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Детали" @@ -816,8 +822,8 @@ msgstr "Отсылка на заказ" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "Расположение источника" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "Код статуса сборки" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "Код партии" @@ -866,8 +872,8 @@ msgstr "Код партии" msgid "Batch code for this build output" msgstr "Код партии для этого вывода сборки" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Дата создания" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты." #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Дата завершения" @@ -888,7 +894,7 @@ msgstr "Дата завершения" msgid "completed by" msgstr "выполнено" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "Выдал/ла" @@ -896,12 +902,12 @@ msgstr "Выдал/ла" msgid "User who issued this build order" msgstr "Пользователь, выпустивший этот заказ на сборку" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Ответственный" @@ -912,8 +918,8 @@ msgstr "Пользователь, ответственный за этот за #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Внешняя ссылка" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "Вывод сборки не указан" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "Вывод сборки уже завершен" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "Вывод сборки не совпадает с порядком сборки" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Элемент сборки должен указать вывод сборки, так как основная часть помечена как отслеживаемая" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "Предмет на складе перераспределен" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "Выделенное количество должно быть больше нуля" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "Количество должно быть 1 для сериализованных запасов" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "Выбранная единица хранения не найдена в BOM" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Сборка" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Предметы на складе" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "Исходный складской предмет" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "Исходный складской предмет" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Количество" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "Введите количество для вывода сборки" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Серийные номера" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Расположение" @@ -1130,13 +1136,13 @@ msgstr "Расположение" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "Статус" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "BOM Компонент" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "Компонент должен быть в наличии" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Превышено доступное количество ({q})" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "Отменить сборку" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "Удалить сборку" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "Завершить сборку" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "Описание сборки" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Целевая дата" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "Просрочено" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Завершённые" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Заказ покупателя" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Выдано" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "Незавершенные выходные данные" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "Удалить заказ на сборку" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Назначение" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "Партия" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Создано" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Заказать детали" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Печать" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "Приложения" msgid "Build Notes" msgstr "Заметки сборки" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "Новый заказ на сборку" @@ -1609,6 +1618,10 @@ msgstr "Печатать заказ на сборку" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "Незавершенные выходные данные" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "Шаблон" msgid "Parts are templates by default" msgstr "По умолчанию детали являются шаблонами" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "Сборка" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "Компонент" @@ -1867,7 +1880,7 @@ msgstr "Компонент" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "Можно продавать" @@ -1884,7 +1897,7 @@ msgstr "Можно продавать" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "Отслеживание" msgid "Parts are trackable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "Режим отладки" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "Необходимо указать EMail" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "Показывать детали, на которые включены уведомления" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "Показывать детали, на которые включены уведомления, на главной странице" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "Показывать категории, на которые включены уведомления" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "Показывать категории, на которые включены уведомления, на главной странице" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "Показывать последние детали" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "Показывать последние детали на главной странице" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "Показывать непроверенные BOMы" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "Показывать BOMы, ожидающие проверки, на главной странице" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "Показывать изменившиеся складские запасы" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "Показывать единицы хранения с недавно изменившимися складскими запасами на главной странице" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "Показывать низкие складские запасы" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "Показывать единицы хранения с низкими складскими запасами на главной странице" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "Показывать закончившиеся детали" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "Показывать закончившиеся на складе единицы хранения на главной странице" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "Показывать требуемые детали" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "Показывать требуемые для сборки единицы хранения на главной странице" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "Показывать просрочку" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "Показывать единицы хранения с истёкшим сроком годности на главной странице" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "Показывать залежалые" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "Показывать залежалые единицы хранения на главной странице" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "Показывать незавершённые сборки" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "Показывать незавершённые сборки на главной странице" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "Показывать просроченные сборки" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "Показывать просроченные сборки на главной странице" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "Цена" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "Контактное лицо" msgid "Link to external company information" msgstr "Ссылка на описание компании" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "Изображение" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "Является ли компания производителем деталей?" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "Валюта" @@ -2797,9 +2834,9 @@ msgstr "Валюта" msgid "Default currency used for this company" msgstr "Для этой компании используется валюта по умолчанию" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "Базовая деталь" @@ -2810,7 +2847,7 @@ msgstr "Выберите деталь" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "Выберите производителя" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Деталь производителя" @@ -2858,9 +2895,9 @@ msgstr "Наименование параметра" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "Значение" @@ -2868,10 +2905,10 @@ msgstr "Значение" msgid "Parameter value" msgstr "Значение параметра" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "Ед.изм" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "Поставщик" @@ -2902,8 +2939,8 @@ msgstr "Выберите поставщика" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "Заметка" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "Упаковка" @@ -2948,7 +2985,7 @@ msgstr "Упаковка" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "Код валюты" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "Компания" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "Создать заказ на закупку" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "Скачать изображение по ссылке" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "Покупатель" @@ -3064,7 +3101,7 @@ msgstr "Скачать изображение" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "Детали поставщиков" @@ -3074,13 +3111,13 @@ msgstr "Создать новую деталь поставщика" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "Новая деталь поставщика" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "Заказать детали" @@ -3094,8 +3131,8 @@ msgstr "Удалить детали" msgid "Delete Parts" msgstr "Удалить детали" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "Детали производителей" @@ -3103,7 +3140,7 @@ msgstr "Детали производителей" msgid "Create new manufacturer part" msgstr "Создать новую деталь производителя" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "Новая деталь производителя" @@ -3117,10 +3154,10 @@ msgstr "Склад поставщика" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "Заказы на закупку" @@ -3140,10 +3177,10 @@ msgstr "Новый заказ на закупку" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "Заказы на продажу" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "Новый заказ на продажу" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "Список поставщиков" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "Производители" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "Поставщики" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "Удалить деталь поставщика" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "Удалить" @@ -3221,14 +3258,14 @@ msgstr "Удалить" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Параметры" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "Новый параметр" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "Удалить параметры" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "Добавить параметр" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "Деталь поставщика" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "Создать единицу хранения" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "Новая единица хранения" @@ -3327,7 +3364,7 @@ msgstr "Информация о цене" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "Склад" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "Детали на складе" @@ -3408,7 +3444,7 @@ msgstr "Новый поставщик" msgid "New Manufacturer" msgstr "Новый производитель" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "Покупатели" @@ -3417,7 +3453,7 @@ msgstr "Покупатели" msgid "New Customer" msgstr "Новый покупатель" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "Компании" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "Компания, в которой детали заказываются" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "Заказ на закупку" @@ -3662,9 +3702,9 @@ msgstr "Заказ на закупку" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "Закупочная цена" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "Введите код партии для поступающих единиц хранения" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "Отменить заказ" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "Редактировать заказ на закупку" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "Выберите деталь поставщика" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Удалить строку" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "Действия" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Место хранения по умолчанию" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "Доступный запас" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "Ключевые слова по умолчанию" msgid "Default keywords for parts in this category" msgstr "Ключевые слова по умолчанию для деталей этой категории" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Категория детали" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "Детали" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "Наименование детали" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "Шаблон" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "Эта деталь является шаблоном для других деталей?" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "Эта деталь является разновидностью другой детали?" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "Разновидность" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "Описание детали" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Ключевые слова" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "Ключевые слова для улучшения видимости в результатах поиска" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "Категория" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "Категория" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "Внутренний код детали" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "Версия детали" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "Версия" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "Где обычно хранится эта деталь?" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Минимальный запас" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "Минимально допустимый складской запас" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "Может ли эта деталь быть создана из других деталей?" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "Может ли эта деталь использоваться для создания других деталей?" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "Может ли эта деталь быть продана покупателям?" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "Эта деталь актуальна?" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "Эта деталь виртуальная, как программный продукт или лицензия?" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "Родительская деталь" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Шаблон параметра" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "Артикул или наименование детали" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "Артикул" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "Наименование детали" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "IPN" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "Значение IPN" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "Выберите родительскую деталь" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "Разрешить разновидности" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "Часть 1" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "Часть 2" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "Валюта покупки этой единицы хранения" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "Подходящая деталь не найдена" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "Действия с BOM" @@ -4845,101 +4897,101 @@ msgstr "Действия с BOM" msgid "Delete Items" msgstr "Удалить элементы" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "Вы подписаны на уведомления для данной категории" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "Включить уведомления для данной категории" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "Действия с категорией" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "Редактировать категорию" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "Редактировать категорию" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "Удалить категорию" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "Удалить категорию" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "Создать новую категорию деталей" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "Новая категория" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "Путь к категории" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Подкатегории" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "Детали (включая подкатегории)" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "Создать новую деталь" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "Новая деталь" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "Настройки" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "Укажите категорию" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "Укажите категорию" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "Параметры детали" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "Создать категорию деталей" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "Создать деталь" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "Создать ещё одну деталь после этой" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "Деталь создана успешно" @@ -4947,7 +4999,7 @@ msgstr "Деталь создана успешно" msgid "Import Parts" msgstr "Импортировать детали" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "Дублировать деталь" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "Наличие на складе" -#: part/templates/part/detail.html:54 +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" +msgstr "Обновить" + +#: part/templates/part/detail.html:59 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:59 +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "Разновидности детали" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "Создать новую разновидность" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "Новая разновидность" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Спецификация" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "Экспорт" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "Экспорт BOM" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "Сборки" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "Поставщики" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "Включить уведомления для данной детали #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "Действия со штрих-кодом" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "Действия со складом" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "На складе" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "Внутренняя цена" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "Разновидности" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "Создать новую разновидность детали" msgid "Create a new variant of template '%(full_name)s'." msgstr "Создать новую разновидность из шаблона '%(full_name)s'." -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Неизвестная база данных" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "Включить уведомления по электронной по msgid "Allow sending of emails for event notifications" msgstr "Разрешить отправку уведомлений о событиях по электронной почте" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "Автор не найден" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "Дата не найдена" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "Серийный номер" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "Родительская единица хранения" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "Базовая деталь" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Место хранения" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "Код партии для этой единицы хранения" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "Исходная сборка" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "Удалить при обнулении" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "Удалить эту единицу хранения при обнулении складского запаса" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "Заметки о единице хранения" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "Деталь не является отслеживаемой" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "Серийные номера уже существуют" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "Выбранная деталь отсутствует в спецификации" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "Установленные единицы хранения" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "Установить единицу хранения" @@ -6318,7 +6387,7 @@ msgstr "Установить единицу хранения" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "Удалить единицу хранения" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "Установить единицу хранения" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "Преобразовать в разновидность" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "Дублировать единицу хранения" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "Редактировать единицу хранения" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "Удалить единицу хранения" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "Родительский элемент" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "Предупреждение" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "Действия с местом хранения" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "Редактировать место хранения" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "Удалить место хранения" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "Создать новое место хранения" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "Новое место хранения" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "Ответственный за место хранения" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Места хранения" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "Места хранения" @@ -6872,15 +6941,15 @@ msgstr "Открыть в новой вкладке" msgid "Part Settings" msgstr "Настройки деталей" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "Шаблон параметра детали" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "Шаблоны параметров категории не найдены" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "Редактировать шаблон" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "Удалить шаблон" @@ -7068,19 +7137,19 @@ msgstr "Шаблоны параметров детали не найдены" msgid "ID" msgstr "Идентификатор" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "Минимальное количество" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "Скачать шаблон BOM" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "Редактировать элемент BOM" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "Удалить элемент BOM" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "Элементы BOM не найдены" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "Унаследовано от родительского BOM" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "Редактировать заказ на сборку" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "Создать заказ на сборку" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "Вы уверены, что хотите отменить эту сборку?" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "Спецификация содержит отслеживаемые детали" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "Отслеживаемые детали могут иметь серийные номера" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "Добавить деталь производителя" msgid "Edit Manufacturer Part" msgstr "Редактировать деталь производителя" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "Добавить поставщика" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "Добавить деталь поставщика" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "Информация о детали производителя не найдена" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "Деталь-шаблон" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "Параметры не найдены" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "Удалить параметр" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "Удалить параметр" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Форма содержит ошибки" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "Не найдено" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "Отмена этого заказа означает, что заказ нельзя будет редактировать." -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "Редактировать заказ на закупку" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "Добавить код партии" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "Заказов на закупку не найдено" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "Общая стоимость" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "Заказы на продажу не найдены" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "Подтвердите выделение запасов" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "Родительская категория" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "Редактировать категорию" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "Вы уверены, что хотите удалить эту категорию?" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "Удалить категорию" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "Создать разновидность детали" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "Вы подписаны на уведомления для данного элемента" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "Вы подписались на уведомления для данного элемента" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "Включить уведомления для данного элемента" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "Вы отписались от уведомлений для данного элемента" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "Отслеживаемая деталь" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "Разновидности не найдены" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "Детали не найдены" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "Нет категории" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "Список" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "Таблица" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "Укажите категорию" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "Дерево" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "Выберите заказ на продажу" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "Вы уверены, что хотите удалить место хранения?" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "Создано несколько единиц хранения" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "Предупреждение: Операция объединения не может быть отменена" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "Следующие данные будут потеряны в процессе объединения" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "История складских перемещений будет удалена для объединённых элементов" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "Информация о деталях поставщика будет удалена для объединённых элементов" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "Загрузка данных" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "строк на странице" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "Показываются все строки" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "Показано от" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "до" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "из" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "строк" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Поиск" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "Ничего не найдено" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "Обновить" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 979cdaaa12..fb03246f87 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "API-slutpunkt hittades inte" @@ -25,33 +25,33 @@ msgstr "API-slutpunkt hittades inte" msgid "Error details can be found in the admin panel" msgstr "Information om felet finns under Error i adminpanelen" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Ange datum" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Anteeckningar" #: InvenTree/format.py:142 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" -msgstr "" +msgstr "Värdet '{name}' visas inte i mönsterformat" #: InvenTree/format.py:152 msgid "Provided value does not match required pattern: " @@ -89,91 +89,95 @@ msgstr "Bekräfta e-postadress" msgid "You must type the same email each time." msgstr "Du måste ange samma e-post varje gång." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" -msgstr "" +msgstr "Anslutningsfel" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" -msgstr "" +msgstr "Servern svarade med ogiltig statuskod" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" -msgstr "" - -#: InvenTree/helpers.py:186 -msgid "Server responded with invalid Content-Length value" -msgstr "" +msgstr "Undantag inträffade" #: InvenTree/helpers.py:189 +msgid "Server responded with invalid Content-Length value" +msgstr "Servern svarade med ogiltigt innehållslängdsvärde" + +#: InvenTree/helpers.py:192 msgid "Image size is too large" -msgstr "" +msgstr "Bilden är för stor" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" -msgstr "" +msgstr "Nedladdning av bilder överskred maximal storlek" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" -msgstr "" +msgstr "Fjärrservern returnerade tomt svar" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" -msgstr "" +msgstr "Angiven URL är inte en giltig bildfil" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Serienummret finns redan: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Tom serienummersträng" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ogiltigt gruppområde: {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Ogiltig grupp: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ogiltig gruppsekvens: {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" -msgstr "" +msgstr "Ogiltig/ingen grupp {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Inga serienummer hittades" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" -msgstr "" +msgstr "Antal unika serienummer ({s}) måste matcha antal ({q})" + +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "Ta bort HTML-taggar från detta värde" #: InvenTree/models.py:236 msgid "Improperly formatted pattern" -msgstr "" +msgstr "Felaktigt formaterat mönster" #: InvenTree/models.py:243 msgid "Unknown format key specified" -msgstr "" +msgstr "Okänd formatnyckel angiven" #: InvenTree/models.py:249 msgid "Missing required format key" -msgstr "" +msgstr "Obligatorisk formatnyckel saknas" #: InvenTree/models.py:261 msgid "Reference field cannot be empty" @@ -181,7 +185,7 @@ msgstr "Textfältet kan inte lämnas tomt" #: InvenTree/models.py:268 msgid "Reference must match required pattern" -msgstr "" +msgstr "Referensen måste matcha obligatoriskt mönster" #: InvenTree/models.py:304 msgid "Reference number is too large" @@ -195,7 +199,7 @@ msgstr "Saknad fil" msgid "Missing external link" msgstr "Extern länk saknas" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Välj fil att bifoga" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Länk" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Länk till extern URL" @@ -229,12 +233,12 @@ msgstr "Kommentar" msgid "File comment" msgstr "Fil kommentar" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Användare" @@ -271,19 +275,19 @@ msgstr "Fel vid namnbyte av fil" msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Namn" @@ -292,21 +296,23 @@ msgstr "Namn" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Beskrivning" @@ -319,9 +325,9 @@ msgid "parent" msgstr "överordnad" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" -msgstr "" +msgstr "Sökväg" #: InvenTree/models.py:670 msgid "Server Error" @@ -331,7 +337,7 @@ msgstr "Serverfel" msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" @@ -388,15 +394,15 @@ msgstr "Duplicerad kolumn: '{col}'" #: InvenTree/serializers.py:602 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" -msgstr "" +msgstr "URL" #: InvenTree/serializers.py:603 msgid "URL of remote image file" -msgstr "" +msgstr "URL för fjärrbildsfil" #: InvenTree/serializers.py:617 msgid "Downloading images from remote URL is not enabled" -msgstr "" +msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad" #: InvenTree/settings.py:607 msgid "Czech" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Placerad" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Slutför" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "Återlämnad" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Skickad" @@ -599,35 +605,35 @@ msgstr "Platsen har ändrats" #: InvenTree/status_codes.py:272 msgid "Installed into assembly" -msgstr "" +msgstr "Installerad i montering" #: InvenTree/status_codes.py:273 msgid "Removed from assembly" -msgstr "" +msgstr "Borttagen från montering" #: InvenTree/status_codes.py:275 msgid "Installed component item" -msgstr "" +msgstr "Installerat komponentobjekt" #: InvenTree/status_codes.py:276 msgid "Removed component item" -msgstr "" +msgstr "Tog bort komponentobjekt" #: InvenTree/status_codes.py:278 msgid "Split from parent item" -msgstr "" +msgstr "Dela från överordnat objekt" #: InvenTree/status_codes.py:279 msgid "Split child item" -msgstr "" +msgstr "Dela underordnat objekt" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Sammanfogade lagerposter" #: InvenTree/status_codes.py:283 msgid "Converted to variant" -msgstr "" +msgstr "Konverterad till variant" #: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:221 msgid "Sent to customer" @@ -639,19 +645,19 @@ msgstr "Returnerad från kund" #: InvenTree/status_codes.py:288 msgid "Build order output created" -msgstr "" +msgstr "Bygg orderutgång skapad" #: InvenTree/status_codes.py:289 msgid "Build order output completed" -msgstr "" +msgstr "Bygg orderutgång slutförd" #: InvenTree/status_codes.py:290 msgid "Consumed by build order" -msgstr "" +msgstr "Konsumeras av byggorder" #: InvenTree/status_codes.py:292 msgid "Received against purchase order" -msgstr "" +msgstr "Mottagen mot inköpsorder" #: InvenTree/status_codes.py:307 msgid "Production" @@ -663,68 +669,68 @@ msgstr "Inte en giltig valutakod" #: InvenTree/validators.py:45 msgid "Invalid character in part name" -msgstr "" +msgstr "Ogiltigt tecken i delnamn" #: InvenTree/validators.py:57 #, python-brace-format msgid "IPN must match regex pattern {pat}" -msgstr "" +msgstr "IPN måste matcha regex mönster {pat}" #: InvenTree/validators.py:68 InvenTree/validators.py:79 #, python-brace-format msgid "Reference must match pattern {pattern}" -msgstr "" +msgstr "Referens måste matcha mönster {pattern}" #: InvenTree/validators.py:102 InvenTree/validators.py:118 msgid "Overage value must not be negative" -msgstr "" +msgstr "Överskott värde får inte vara negativt" #: InvenTree/validators.py:120 msgid "Overage must not exceed 100%" -msgstr "" +msgstr "Överskott får inte överstiga 100%" #: InvenTree/validators.py:127 msgid "Invalid value for overage" -msgstr "" +msgstr "Ogiltigt värde för överskott" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Redigera användarinformation" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Ställ in lösenord" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Lösenorden måste matcha" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "Felaktigt lösenord angivet" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Systeminformation" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "Om InvenTree" #: build/api.py:217 msgid "Build must be cancelled before it can be deleted" -msgstr "" +msgstr "Byggnationen måste avbrytas innan den kan tas bort" #: build/models.py:105 msgid "Invalid choice for parent build" -msgstr "" +msgstr "Ogiltigt val för överordnad bygge" #: build/models.py:110 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 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Byggorder" @@ -733,7 +739,7 @@ msgstr "Byggorder" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Byggordrar" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "Byggorderreferens" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Referens" @@ -758,49 +764,49 @@ msgstr "Referens" msgid "Brief description of the build" msgstr "Kort beskrivning av bygget" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Överordnat Bygge" #: build/models.py:186 msgid "BuildOrder to which this build is allocated" -msgstr "" +msgstr "Byggorder till vilken detta bygge är tilldelad" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Del" @@ -814,40 +820,40 @@ msgstr "Försäljningsorderreferens" #: build/models.py:208 msgid "SalesOrder to which this build is allocated" -msgstr "" +msgstr "Försäljningsorder till vilken detta bygge allokeras" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" -msgstr "" +msgstr "Källa Plats" #: build/models.py:217 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" -msgstr "" +msgstr "Välj plats att ta lager från för detta bygge (lämna tomt för att ta från någon lagerplats)" #: build/models.py:222 msgid "Destination Location" -msgstr "" +msgstr "Destinationsplats" #: build/models.py:226 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "Välj plats där de färdiga objekten kommer att lagras" #: build/models.py:230 msgid "Build Quantity" -msgstr "" +msgstr "Bygg kvantitet" #: build/models.py:233 msgid "Number of stock items to build" -msgstr "" +msgstr "Antal lagerobjekt att bygga" #: build/models.py:237 msgid "Completed items" -msgstr "" +msgstr "Slutförda objekt" #: build/models.py:239 msgid "Number of stock items which have been completed" -msgstr "" +msgstr "Antal lagerposter som har slutförts" #: build/models.py:243 msgid "Build Status" @@ -855,19 +861,19 @@ msgstr "Byggstatus" #: build/models.py:247 msgid "Build status code" -msgstr "" +msgstr "Bygg statuskod" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" -msgstr "" +msgstr "Batchkod" #: build/models.py:255 build/serializers.py:226 msgid "Batch code for this build output" -msgstr "" +msgstr "Batch-kod för denna byggutdata" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Skapad" @@ -877,31 +883,31 @@ msgstr "Datum för slutförande" #: build/models.py:263 msgid "Target date for build completion. Build will be overdue after this date." -msgstr "" +msgstr "Måldatum för färdigställande. Byggandet kommer att förfallas efter detta datum." #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" -msgstr "" +msgstr "Slutförandedatum" #: build/models.py:272 msgid "completed by" -msgstr "" +msgstr "slutfört av" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" -msgstr "" +msgstr "Utfärdad av" #: build/models.py:281 msgid "User who issued this build order" msgstr "Användare som utfärdade denna byggorder" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Ansvarig" @@ -912,98 +918,98 @@ msgstr "Användare som ansvarar för denna byggorder" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Extern länk" #: build/models.py:300 msgid "Extra build notes" -msgstr "" +msgstr "Extra bygganteckningar" #: build/models.py:538 #, python-brace-format msgid "Build order {build} has been completed" -msgstr "" +msgstr "Byggorder {build} har slutförts" #: build/models.py:544 msgid "A build order has been completed" -msgstr "" +msgstr "En byggorder har slutförts" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" -msgstr "" +msgstr "Ingen byggutgång angiven" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" -msgstr "" +msgstr "Byggutgång är redan slutförd" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" -msgstr "" +msgstr "Byggutgång matchar inte bygg order" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" +msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad som spårbar" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" -msgstr "" +msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" -msgstr "" +msgstr "Lagerposten är överallokerad" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" -msgstr "" +msgstr "Allokeringsmängden måste vara större än noll" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" -msgstr "" +msgstr "Antal måste vara 1 för serialiserat lager" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" -msgstr "" +msgstr "Vald lagervara hittades inte i BOM" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Bygg" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" -msgstr "" +msgstr "Bygg för att allokera delar" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Artikel i lager" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" -msgstr "" +msgstr "Källa lagervara" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,48 +1017,48 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Antal" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" -msgstr "" +msgstr "Lagersaldo att allokera för att bygga" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" -msgstr "" +msgstr "Installera till" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" -msgstr "" +msgstr "Destination lagervara" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" -msgstr "" +msgstr "Bygg utdata" #: build/serializers.py:150 msgid "Build output does not match the parent build" -msgstr "" +msgstr "Byggutdata matchar inte överordnad version" #: build/serializers.py:154 msgid "Output part does not match BuildOrder part" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Serienummer" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Plats" @@ -1130,13 +1136,13 @@ msgstr "Plats" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "Status" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "Acceptera ofullständig" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "Avbryt bygge" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "Ta bort bygge" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "Färdigställ bygget" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "Byggbeskrivning" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Måldatum" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "Försenad" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Slutförd" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Försäljningsorder" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Utfärdad av" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Mål" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Skapad" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "Beställ obligatoriska delar" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Beställ delar" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "Skriv ut etiketter" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "Bilagor" msgid "Build Notes" msgstr "Bygganteckningar" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "Ny byggorder" @@ -1609,6 +1618,10 @@ msgstr "Skriv ut byggorder" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "Formatera för att visa artikelnamnet" #: common/models.py:1074 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1075 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 msgid "Enable label printing" msgstr "Aktivera etikettutskrift" -#: common/models.py:1075 +#: common/models.py:1081 msgid "Enable label printing from the web interface" msgstr "Aktivera etikettutskrift från webbgränssnittet" -#: common/models.py:1081 +#: common/models.py:1087 msgid "Label Image DPI" msgstr "Etikettbild DPI" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "Aktivera rapporter" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "Aktivera generering av rapporter" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "Debugläge" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "Sidstorlek" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "Standard sidstorlek för PDF-rapporter" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "Aktivera testrapporter" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 7e92bac3e4..164733c60e 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "" @@ -25,26 +25,26 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -89,80 +89,84 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "" @@ -229,12 +233,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "" @@ -271,19 +275,19 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "" @@ -292,21 +296,23 @@ msgstr "" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "" @@ -319,7 +325,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -621,7 +627,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "" @@ -733,7 +739,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index fc376514e1..fe446895c1 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "API uç noktası bulunamadı" @@ -25,26 +25,26 @@ msgstr "API uç noktası bulunamadı" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "Tarih giriniz" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "Notlar" @@ -89,80 +89,84 @@ msgstr "E-posta adresi onayı" msgid "You must type the same email each time." msgstr "Her seferind eaynı e-posta adresini yazmalısınız." -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "Tekrarlanan seri no:{sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Boş seri numarası dizesi" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "Geçersiz grup: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Geçersiz grup: {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "Seri numarası bulunamadı" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "Eksik dosya" msgid "Missing external link" msgstr "Bozuk dış bağlantı" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "Eklenecek dosyayı seç" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "Bağlantı" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" @@ -229,12 +233,12 @@ msgstr "Yorum" msgid "File comment" msgstr "Dosya yorumu" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Kullanıcı" @@ -271,19 +275,19 @@ msgstr "Dosya adı değiştirilirken hata" msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "Adı" @@ -292,21 +296,23 @@ msgstr "Adı" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Açıklama" @@ -319,7 +325,7 @@ msgid "parent" msgstr "üst" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "Sipariş verildi" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "Tamamlandı" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "İade" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "Sevk edildi" @@ -621,7 +627,7 @@ msgstr "Üst ögeden ayır" msgid "Split child item" msgstr "Alt ögeyi ayır" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "Stok parçalarını birleştir" @@ -687,27 +693,27 @@ msgstr "Fazlalık %100'ü geçmemelidir" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "Kullanıcı Bilgisini Düzenle" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Şifre Belirle" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "Parola alanları eşleşmelidir" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Sistem Bilgisi" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "InvenTree Hakkında" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Yapım İşi Emri" @@ -733,7 +739,7 @@ msgstr "Yapım İşi Emri" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Yapım İşi Emirleri" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "Referans" @@ -758,7 +764,7 @@ msgstr "Referans" msgid "Brief description of the build" msgstr "Yapım işinin kısa açıklaması" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Üst Yapım İşi" @@ -767,40 +773,40 @@ msgstr "Üst Yapım İşi" msgid "BuildOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Parça" @@ -816,8 +822,8 @@ msgstr "Satış Emri Referansı" msgid "SalesOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği satış emri" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "Kaynak Konum" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "Yapım işi durum kodu" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "Sıra numarası" @@ -866,8 +872,8 @@ msgstr "Sıra numarası" msgid "Batch code for this build output" msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "Oluşturulma tarihi" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak." #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Tamamlama tarihi" @@ -888,7 +894,7 @@ msgstr "Tamamlama tarihi" msgid "completed by" msgstr "tamamlayan" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "Veren" @@ -896,12 +902,12 @@ msgstr "Veren" msgid "User who issued this build order" msgstr "Bu yapım işi emrini veren kullanıcı" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "Sorumlu" @@ -912,8 +918,8 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "Harici Bağlantı" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "Yapım işi çıktısı belirtilmedi" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "Yapım işi çıktısı zaten tamamlanmış" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "Seri numaralı stok için miktar bir olmalı" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "Yapım İşi" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "Yapım işi için tahsis edilen parçalar" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "Stok Kalemi" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "Kaynak stok kalemi" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "Miktar" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "Kurulduğu yer" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "Hedef stok kalemi" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "Yapım işi çıktısı için miktarını girin" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Seri Numaraları" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "Konum" @@ -1130,13 +1136,13 @@ msgstr "Konum" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "Durum" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "Gerekli stok tamamen tahsis edilemedi" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "Gerekli yapım işi miktarı tamamlanmadı" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "Yapım İşini İptal Et" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "Tamamlanmış Yapım İşi" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Bu yapım işi emri, %(link)s sipariş emrine tahsis edilmiştir" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Bu yapım işi emri, %(link)s yapım iş emrinin altıdır" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "Yapım işi tamamlandı olarak işaretlenmeye hazır" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bekleyen çıktılar kaldığı için yapım işi emri tamamlanamıyor" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "Gerekli yapım işi miktarı henüz tamamlanmadı" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "Hedeflenen tarih" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor" msgid "Overdue" msgstr "Vadesi geçmiş" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Tamamlandı" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "Sipariş Emri" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "Veren" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "Tamamlanmamış Çıktılar" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "Tamamlanmamış yapım işi çıktıları kaldığı için yapım işi emri tamamlanamıyor" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "Yapım İşi Emrini Sil" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "Hedef" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "Toplu" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "Oluşturuldu" @@ -1476,7 +1485,7 @@ msgstr "Alt Yapım İşi Emrileri" msgid "Allocate Stock to Build" msgstr "Yapım İşi için Stok Tahsis Et" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "Stok tahsisini kaldır" @@ -1507,7 +1516,7 @@ msgstr "Gerekli parçaları sipariş edin" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "Parça Siparişi" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Yazdırma İşlemleri" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "Etiketleri yazdır" @@ -1579,7 +1588,7 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "Ekler" msgid "Build Notes" msgstr "Yapım İşi Notları" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "Yeni Yapım İşi Emri" @@ -1609,6 +1618,10 @@ msgstr "Yapım İşi Emirlerini Yazdır" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "Tamamlanmamış Çıktılar" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "Kategori Paremetre Sablonu Kopyala" msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "Şablon" msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "Montaj" msgid "Parts can be assembled from other components by default" msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "Bileşen" @@ -1867,7 +1880,7 @@ msgstr "Bileşen" msgid "Parts can be used as sub-components by default" msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "Satın Alınabilir" @@ -1875,7 +1888,7 @@ msgstr "Satın Alınabilir" msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "Satılabilir" @@ -1884,7 +1897,7 @@ msgstr "Satılabilir" msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "Takip Edilebilir" msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "Hata Ayıklama Modu" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "Sayfa Boyutu" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "PDF raporlar için varsayılan sayfa boyutu" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "günler" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "Fiyat" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "Aktif" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "Resim" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "Bu şirket üretim yapıyor mu?" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "Para birimi" @@ -2797,9 +2834,9 @@ msgstr "Para birimi" msgid "Default currency used for this company" msgstr "Bu şirket için varsayılan para birimi" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "Temel Parça" @@ -2810,7 +2847,7 @@ msgstr "Parça seçin" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "Üretici seçin" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "ÜPN" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "Parametre adı" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "Değer" @@ -2868,10 +2905,10 @@ msgstr "Değer" msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "Tedarikçi" @@ -2902,8 +2939,8 @@ msgstr "Tedarikçi seçin" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "Not" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "Paketleme" @@ -2948,7 +2985,7 @@ msgstr "Paketleme" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "çoklu" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "Mevcut" @@ -2992,12 +3029,12 @@ msgstr "Para Birimi Kodu" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "Satın Alma Emri Oluştur" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "Müşteri" @@ -3064,7 +3101,7 @@ msgstr "Resmi İndirin" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "Tedarikçi Parçaları" @@ -3074,13 +3111,13 @@ msgstr "Yeni tedarikçi parçası oluştur" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "Yeni Tedarikçi Parçası" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "Parçaları sil" msgid "Delete Parts" msgstr "Parçaları Sil" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "Tedarikçi Stoku" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "Satın Alma Emirleri" @@ -3140,10 +3177,10 @@ msgstr "Yeni Satın Alma Emri" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "Satış Emirleri" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "Yeni Satış Emri" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "Atanan Stok" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "Üreticiler" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Parça siparişi" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "Tedarikçi parçalarını sil" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "Tedarikçi Parçası" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "Tedarikçi Parça Stoku" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "Fiyat Bilgisi" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "Stok" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "Fiyatlandırma" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -3408,7 +3444,7 @@ msgstr "Yeni Tedarikçi" msgid "New Manufacturer" msgstr "Yeni Üretici" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "Müşteriler" @@ -3417,7 +3453,7 @@ msgstr "Müşteriler" msgid "New Customer" msgstr "Yeni Müşteri" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "Şirketler" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "Sipariş açıklaması" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "Siparişi iptal et" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "Sipariş ver" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "Siparişi tamamlandı olarak işaretle" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "Tedarikçi Parçası Seçin" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "İşlemler" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Varsayılan Konum" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "Parça Kategorileri" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "Parçalar" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "Sonraki kullanılabilir seri numaraları" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "Sonraki müsait seri numarası" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "En son seri numarası" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "Parça adı" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "Bu parça başka bir parçanın çeşidi mi?" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "Çeşidi" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "Parça açıklaması" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Anahtar kelimeler" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "DPN" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "Revizyon" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Minimum Stok" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "Gerekli" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Alt kategoriler" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "Parçalar (Alt kategoriler dahil)" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "Kategori ayarla" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "Kategori Ayarla" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "Parça Stoku" -#: part/templates/part/detail.html:54 +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" +msgstr "Yenile" + +#: part/templates/part/detail.html:59 msgid "Part Test Templates" msgstr "Parça Test Şablonları" -#: part/templates/part/detail.html:59 +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "Test Şablonu Ekle" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "Parça Çeşitleri" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "Yeni çeşit oluştur" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "Yeni Çeşit" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "Parça Tedarikçileri" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "Barkod işlemleri" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "Etiket Yazdır" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "Stok işlemleri" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "Pasif" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "Son Seri Numarası" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "Toplam Maliyet" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "Stok Yok" @@ -5516,11 +5588,11 @@ msgstr "Yeni parça çeşidi oluştur" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Şablon için geçerli bir nesne sağlanmadı" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "Seri Numara" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "Seri No" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "Bu seri numarasına sahip stok kalemi zaten var" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "Seri numarası olan ögenin miktarı bir olmalı" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "Bu stok kalemi için tedarikçi parçası seçin" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "Seri numaraları tam sayı listesi olmalı" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seri numaraları zaten mevcut: {exists}" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "Seri numaraları zaten mevcut" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "İşlem notu ekle (isteğe bağlı)" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "Stok ayarlama işlemleri" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "Stoku seri numarala" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "Çeşide çevir" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "Stok kalemi tüm gerekli testleri geçmedi" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz." -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "Konum ayarlanmadı" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "Uyarı" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "Bu işlem kolayca geri alınamaz" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "Stok Kalemine Dönüştür" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "Bu stok kalemi için seri numaralandırılmış ögeler oluştur." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seri numaralandırılacak miktarı ve benzersiz seri numaralarını seçin." -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "Konum işlemleri" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "Konumu düzenle" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "Konumu sil" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "Yeni stok konumu oluştur" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "Yeni Konum" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez." -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alt konumlar" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "Stok Konumları" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "Parça Parametre Şablonu" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "Commit Hash Değeri" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "Kategori parametre şablonu bulunamadı" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "Şablonu Düzenle" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "Şablonu Sil" @@ -7068,19 +7137,19 @@ msgstr "Parça parametre şablonu bulunamadı" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "Parça Parametre Şablonu Oluştur" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "Parça Parametre Şablonu Düzenle" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "Parça Parametre Şablonu Sil" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Kapat" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "Gerekli Parça" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "Yapım işi emri eksik" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "Tamamlanmış Yapım İşi Emri" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "Bu Malzeme Listesi takip edilebilir parçalar içeriyor" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "Takip edilebilir parçaların seri numaraları belirtilmiş olmalı" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "Birden çok tek yapım işi çıktısı oluşturmak için seri numaraları girin" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "Yapım İşi Çıktısı Oluştur" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "Stok tahsisini düzenle" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "Stok tahsisini sil" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Parçaları Seçin" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "Şablon Parça" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "Ürünler" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "Stok tahsisini onayla" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "Silme İşlemini Onayla" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "Seri numaralarını tahsis et" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "Seri Numaralarını Tahsis Et" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "Çeşit bulunamadı" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "Katagori Yok" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "Sorgu ile eşleşen test şablonu bulunamadı" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "Stok konumunu düzenle" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "Bu stok konumunu silmek istediğinizden emin misiniz?" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "Stok Konumunu Sil" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "Stok ayarlamasını onayla" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "Stok konumu ayarlanmadı" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "Detaylar" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "Konum artık yok" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "Gösteriliyor" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "için" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "yüzünden" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "satırlar" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Arama" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "Sonuç bulunamadı" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "Sayfalandırmayı Göster" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "Yenile" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "Değiştir" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "Sütunlar" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "Tümü" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index 88e09d4efc..37f51117d3 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "" @@ -25,26 +25,26 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "" @@ -89,80 +89,84 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "" @@ -229,12 +233,12 @@ msgstr "Bình luận" msgid "File comment" msgstr "" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "Người dùng" @@ -271,19 +275,19 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "" @@ -292,21 +296,23 @@ msgstr "" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "Mô tả" @@ -319,7 +325,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "" @@ -621,7 +627,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "" @@ -687,27 +693,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "Thông tin hệ thống" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "Giới thiệu" @@ -724,7 +730,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "Tạo đơn hàng" @@ -733,7 +739,7 @@ msgstr "Tạo đơn hàng" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "Tạo đơn hàng" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "" @@ -758,7 +764,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -767,40 +773,40 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "Nguyên liệu" @@ -816,8 +822,8 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "" @@ -866,8 +872,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "Ngày hoàn thành" @@ -888,7 +894,7 @@ msgstr "Ngày hoàn thành" msgid "completed by" msgstr "" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "" @@ -896,12 +902,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "" @@ -912,8 +918,8 @@ msgstr "" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "" @@ -930,80 +936,80 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "" @@ -1070,10 +1076,10 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "" @@ -1130,13 +1136,13 @@ msgstr "" msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "Trạng thái" @@ -1164,117 +1170,121 @@ msgstr "" msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:480 -msgid "Accept Overallocated" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:491 -msgid "Some stock items have been overallocated" +#: build/serializers.py:494 +msgid "Overallocated Stock" msgstr "" #: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "Đã hoàn thành" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "" @@ -1476,7 +1485,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "" @@ -1507,7 +1516,7 @@ msgstr "" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "" @@ -1609,6 +1618,10 @@ msgstr "" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "" @@ -1867,7 +1880,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "" @@ -1875,7 +1888,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "" @@ -1884,7 +1897,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "" @@ -2797,9 +2834,9 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" @@ -2858,9 +2895,9 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "" @@ -2868,10 +2905,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "Nhà cung cấp" @@ -2902,8 +2939,8 @@ msgstr "" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "" @@ -2948,7 +2985,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "" @@ -2992,12 +3029,12 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "" @@ -3064,7 +3101,7 @@ msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "" @@ -3074,13 +3111,13 @@ msgstr "" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "" @@ -3094,8 +3131,8 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "" @@ -3103,7 +3140,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "" @@ -3117,10 +3154,10 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "" @@ -3140,10 +3177,10 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "" @@ -3221,14 +3258,14 @@ msgstr "" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "Kiện hàng" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "" @@ -3408,7 +3444,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -3417,7 +3453,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "" @@ -3490,6 +3526,10 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "Đơn hàng" @@ -3662,9 +3702,9 @@ msgstr "Đơn hàng" msgid "Supplier part" msgstr "" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "Giá mua" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "Nguyên liệu" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "Số seri mới nhất" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Kho hàng" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "Quản trị" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "" @@ -7068,19 +7137,19 @@ msgstr "" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "Số seri mới nhất" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index aed7c4b206..275dbf6c7f 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-04 22:08+0000\n" -"PO-Revision-Date: 2022-08-05 01:02\n" +"POT-Creation-Date: 2022-08-25 10:08+0000\n" +"PO-Revision-Date: 2022-08-26 01:55\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:52 +#: InvenTree/api.py:54 msgid "API endpoint not found" msgstr "未找到 API 端点" @@ -25,26 +25,26 @@ msgstr "未找到 API 端点" msgid "Error details can be found in the admin panel" msgstr "在管理面板中可以找到错误详细信息" -#: InvenTree/fields.py:108 +#: InvenTree/fields.py:109 msgid "Enter date" msgstr "输入日期" -#: InvenTree/fields.py:185 build/serializers.py:384 +#: InvenTree/fields.py:186 build/serializers.py:384 #: build/templates/build/sidebar.html:21 company/models.py:523 #: company/templates/company/sidebar.html:25 order/models.py:906 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1993 stock/models.py:2101 stock/serializers.py:329 -#: stock/serializers.py:458 stock/serializers.py:539 stock/serializers.py:823 +#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327 +#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 #: stock/serializers.py:922 stock/serializers.py:1054 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1101 -#: templates/js/translated/company.js:964 templates/js/translated/order.js:2104 -#: templates/js/translated/order.js:2255 templates/js/translated/order.js:2753 -#: templates/js/translated/order.js:3704 templates/js/translated/order.js:4102 -#: templates/js/translated/stock.js:1370 templates/js/translated/stock.js:1976 +#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099 +#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210 +#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859 +#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208 +#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980 msgid "Notes" msgstr "备注" @@ -89,80 +89,84 @@ msgstr "Email 地址确认" msgid "You must type the same email each time." msgstr "您必须输入相同的 Email 。" -#: InvenTree/helpers.py:172 +#: InvenTree/helpers.py:175 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:176 InvenTree/helpers.py:181 +#: InvenTree/helpers.py:179 InvenTree/helpers.py:184 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:178 +#: InvenTree/helpers.py:181 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:186 +#: InvenTree/helpers.py:189 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:189 +#: InvenTree/helpers.py:192 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:204 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:206 +#: InvenTree/helpers.py:209 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:214 +#: InvenTree/helpers.py:217 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: InvenTree/helpers.py:573 +#: InvenTree/helpers.py:600 #, python-brace-format msgid "Duplicate serial: {sn}" msgstr "重复的序列号: {sn}" -#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472 +#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472 msgid "Invalid quantity provided" msgstr "提供的数量无效" -#: InvenTree/helpers.py:583 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "空序列号字符串" -#: InvenTree/helpers.py:615 +#: InvenTree/helpers.py:642 #, python-brace-format msgid "Invalid group range: {g}" msgstr "无效的组范围: {g}" -#: InvenTree/helpers.py:618 +#: InvenTree/helpers.py:645 #, python-brace-format msgid "Invalid group: {g}" msgstr "无效的群组: {g}" -#: InvenTree/helpers.py:646 +#: InvenTree/helpers.py:673 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "无效的组序列: {g}" -#: InvenTree/helpers.py:654 +#: InvenTree/helpers.py:681 #, python-brace-format msgid "Invalid/no group {group}" msgstr "无效的群组: {group}" -#: InvenTree/helpers.py:660 +#: InvenTree/helpers.py:687 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:664 +#: InvenTree/helpers.py:691 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" +#: InvenTree/helpers.py:890 +msgid "Remove HTML tags from this value" +msgstr "" + #: InvenTree/models.py:236 msgid "Improperly formatted pattern" msgstr "" @@ -195,7 +199,7 @@ msgstr "缺少文件" msgid "Missing external link" msgstr "缺少外部链接" -#: InvenTree/models.py:395 stock/models.py:2095 +#: InvenTree/models.py:395 stock/models.py:2102 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -207,16 +211,16 @@ msgstr "选择附件" #: InvenTree/models.py:402 company/models.py:124 company/models.py:276 #: company/models.py:510 order/models.py:84 order/models.py:1245 -#: part/models.py:795 +#: part/models.py:802 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:656 -#: templates/js/translated/company.js:948 templates/js/translated/order.js:2742 -#: templates/js/translated/part.js:1510 +#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848 +#: templates/js/translated/part.js:1534 msgid "Link" msgstr "链接" -#: InvenTree/models.py:403 build/models.py:296 part/models.py:796 -#: stock/models.py:651 +#: InvenTree/models.py:403 build/models.py:296 part/models.py:803 +#: stock/models.py:658 msgid "Link to external URL" msgstr "链接到外部 URL" @@ -229,12 +233,12 @@ msgstr "注释" msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646 -#: common/models.py:1647 common/models.py:1870 common/models.py:1871 -#: common/models.py:2133 common/models.py:2134 part/models.py:2193 -#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239 +#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665 +#: common/models.py:1666 common/models.py:1889 common/models.py:1890 +#: common/models.py:2152 common/models.py:2153 part/models.py:2239 +#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2632 +#: templates/js/translated/stock.js:2641 msgid "User" msgstr "用户" @@ -271,19 +275,19 @@ msgstr "重命名文件出错" msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856 -#: company/models.py:358 label/models.py:101 part/models.py:739 -#: part/models.py:2371 plugin/models.py:93 report/models.py:152 +#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875 +#: company/models.py:358 label/models.py:101 part/models.py:746 +#: part/models.py:2417 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:49 -#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:134 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:347 #: templates/js/translated/company.js:545 #: templates/js/translated/company.js:758 #: templates/js/translated/notification.js:71 -#: templates/js/translated/part.js:684 templates/js/translated/part.js:836 -#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388 +#: templates/js/translated/part.js:688 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392 msgid "Name" msgstr "名称" @@ -292,21 +296,23 @@ msgstr "名称" #: company/models.py:516 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:87 label/models.py:108 -#: order/models.py:82 part/models.py:762 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:167 report/models.py:165 +#: order/models.py:82 part/models.py:769 part/models.py:2429 +#: part/templates/part/category.html:80 part/templates/part/part_base.html:167 +#: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:848 -#: templates/js/translated/build.js:2471 templates/js/translated/company.js:409 +#: templates/InvenTree/settings/settings.html:358 +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846 +#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409 #: templates/js/translated/company.js:667 -#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720 -#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531 -#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933 -#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739 -#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469 +#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826 +#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637 +#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167 +#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962 +#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743 +#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478 msgid "Description" msgstr "描述信息" @@ -319,7 +325,7 @@ msgid "parent" msgstr "上级项" #: InvenTree/models.py:560 InvenTree/models.py:561 -#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421 +#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430 msgid "Path" msgstr "" @@ -331,7 +337,7 @@ msgstr "服务器错误" msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/serializers.py:55 part/models.py:2692 +#: InvenTree/serializers.py:55 part/models.py:2745 msgid "Must be a valid number" msgstr "必须是有效数字" @@ -516,7 +522,7 @@ msgid "Placed" msgstr "已添加" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309 -#: order/templates/order/order_base.html:134 +#: order/templates/order/order_base.html:137 #: order/templates/order/sales_order_base.html:133 msgid "Complete" msgstr "完成" @@ -537,7 +543,7 @@ msgid "Returned" msgstr "已退回" #: InvenTree/status_codes.py:141 order/models.py:1128 -#: templates/js/translated/order.js:3330 templates/js/translated/order.js:3679 +#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785 msgid "Shipped" msgstr "已发货" @@ -621,7 +627,7 @@ msgstr "从父项拆分" msgid "Split child item" msgstr "拆分子项" -#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080 +#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084 msgid "Merged stock items" msgstr "合并的库存项目" @@ -687,27 +693,27 @@ msgstr "备损不能超过 100%" msgid "Invalid value for overage" msgstr "无效的备损值" -#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22 msgid "Edit User Information" msgstr "编辑用户信息" -#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "设置密码" -#: InvenTree/views.py:553 +#: InvenTree/views.py:554 msgid "Password fields must match" msgstr "密码字段必须相匹配。" -#: InvenTree/views.py:562 +#: InvenTree/views.py:563 msgid "Wrong password provided" msgstr "密码错误" -#: InvenTree/views.py:769 templates/navbar.html:152 +#: InvenTree/views.py:773 templates/navbar.html:152 msgid "System Information" msgstr "系统信息" -#: InvenTree/views.py:776 templates/navbar.html:163 +#: InvenTree/views.py:780 templates/navbar.html:163 msgid "About InvenTree" msgstr "关于 InventTree" @@ -724,7 +730,7 @@ msgstr "上级生产选项无效" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:764 msgid "Build Order" msgstr "生产订单" @@ -733,7 +739,7 @@ msgstr "生产订单" #: order/templates/order/sales_order_detail.html:120 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:139 +#: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:47 users/models.py:41 msgid "Build Orders" msgstr "生产订单" @@ -743,14 +749,14 @@ msgid "Build Order Reference" msgstr "相关生产订单" #: build/models.py:166 order/models.py:240 order/models.py:623 -#: order/models.py:904 part/models.py:2610 +#: order/models.py:904 part/models.py:2663 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:692 templates/js/translated/bom.js:855 -#: templates/js/translated/build.js:1779 templates/js/translated/order.js:1983 -#: templates/js/translated/order.js:2184 templates/js/translated/order.js:3523 -#: templates/js/translated/order.js:4031 +#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853 +#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089 +#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629 +#: templates/js/translated/order.js:4137 msgid "Reference" msgstr "引用" @@ -758,7 +764,7 @@ msgstr "引用" msgid "Brief description of the build" msgstr "生产的简短描述." -#: build/models.py:185 build/templates/build/build_base.html:169 +#: build/models.py:185 build/templates/build/build_base.html:172 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "上级生产" @@ -767,40 +773,40 @@ msgstr "上级生产" msgid "BuildOrder to which this build is allocated" msgstr "此次生产匹配的订单" -#: build/models.py:191 build/templates/build/build_base.html:77 +#: build/models.py:191 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:670 #: order/models.py:1001 order/models.py:1112 order/models.py:1113 -#: part/models.py:336 part/models.py:2139 part/models.py:2154 -#: part/models.py:2173 part/models.py:2191 part/models.py:2290 -#: part/models.py:2410 part/models.py:2500 part/models.py:2585 -#: part/models.py:2861 part/serializers.py:811 +#: part/models.py:343 part/models.py:2185 part/models.py:2200 +#: part/models.py:2219 part/models.py:2237 part/models.py:2336 +#: part/models.py:2463 part/models.py:2553 part/models.py:2638 +#: part/models.py:2914 part/serializers.py:814 #: 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_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 -#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:88 -#: stock/serializers.py:492 templates/InvenTree/search.html:80 +#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 +#: stock/serializers.py:490 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:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:553 -#: templates/js/translated/bom.js:691 templates/js/translated/bom.js:802 -#: templates/js/translated/build.js:1156 templates/js/translated/build.js:1649 -#: templates/js/translated/build.js:2085 templates/js/translated/build.js:2476 +#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552 +#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800 +#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682 +#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517 #: templates/js/translated/company.js:266 #: templates/js/translated/company.js:496 #: templates/js/translated/company.js:608 -#: templates/js/translated/company.js:868 templates/js/translated/order.js:103 -#: templates/js/translated/order.js:934 templates/js/translated/order.js:1387 -#: templates/js/translated/order.js:1937 templates/js/translated/order.js:2885 -#: templates/js/translated/order.js:3281 templates/js/translated/order.js:3507 -#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206 -#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582 -#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954 -#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495 -#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824 +#: templates/js/translated/company.js:868 templates/js/translated/order.js:105 +#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493 +#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991 +#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613 +#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224 +#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586 +#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958 +#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504 +#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833 msgid "Part" msgstr "商品" @@ -816,8 +822,8 @@ msgstr "相关销售订单" msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" -#: build/models.py:213 build/serializers.py:784 -#: templates/js/translated/build.js:2073 templates/js/translated/order.js:2873 +#: build/models.py:213 build/serializers.py:800 +#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979 msgid "Source Location" msgstr "来源地点" @@ -858,7 +864,7 @@ msgid "Build status code" msgstr "生产状态代码" #: build/models.py:251 build/serializers.py:225 order/serializers.py:447 -#: stock/models.py:655 templates/js/translated/order.js:1247 +#: stock/models.py:662 templates/js/translated/order.js:1353 msgid "Batch Code" msgstr "批量代码" @@ -866,8 +872,8 @@ msgstr "批量代码" msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:258 order/models.py:86 part/models.py:931 -#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2544 +#: build/models.py:258 order/models.py:86 part/models.py:938 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650 msgid "Creation Date" msgstr "创建日期" @@ -880,7 +886,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" #: build/models.py:266 order/models.py:286 -#: templates/js/translated/build.js:2553 +#: templates/js/translated/build.js:2594 msgid "Completion Date" msgstr "完成日期:" @@ -888,7 +894,7 @@ msgstr "完成日期:" msgid "completed by" msgstr "完成人" -#: build/models.py:280 templates/js/translated/build.js:2521 +#: build/models.py:280 templates/js/translated/build.js:2562 msgid "Issued by" msgstr "发布者" @@ -896,12 +902,12 @@ msgstr "发布者" msgid "User who issued this build order" msgstr "发布此生产订单的用户" -#: build/models.py:289 build/templates/build/build_base.html:190 +#: build/models.py:289 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 -#: order/templates/order/order_base.html:176 -#: order/templates/order/sales_order_base.html:183 part/models.py:935 +#: order/templates/order/order_base.html:179 +#: order/templates/order/sales_order_base.html:183 part/models.py:942 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2533 templates/js/translated/order.js:1754 +#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860 msgid "Responsible" msgstr "责任人" @@ -912,8 +918,8 @@ msgstr "负责此生产订单的用户" #: build/models.py:295 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:153 -#: part/templates/part/part_base.html:346 stock/models.py:649 -#: stock/templates/stock/item_base.html:205 +#: part/templates/part/part_base.html:346 stock/models.py:656 +#: stock/templates/stock/item_base.html:200 msgid "External Link" msgstr "外部链接" @@ -930,80 +936,80 @@ msgstr "生产订单 {build} 已完成" msgid "A build order has been completed" msgstr "生产订单已完成" -#: build/models.py:725 +#: build/models.py:723 msgid "No build output specified" msgstr "未指定生产产出" -#: build/models.py:728 +#: build/models.py:726 msgid "Build output is already completed" msgstr "生产产出已完成" -#: build/models.py:731 +#: build/models.py:729 msgid "Build output does not match Build Order" msgstr "生产产出与订单不匹配" -#: build/models.py:1143 +#: build/models.py:1169 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "生产项必须指定生产产出,因为主部件已经被标记为可追踪的" -#: build/models.py:1152 +#: build/models.py:1178 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: build/models.py:1162 order/models.py:1379 +#: build/models.py:1188 order/models.py:1379 msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1168 order/models.py:1382 +#: build/models.py:1194 order/models.py:1382 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" -#: build/models.py:1174 +#: build/models.py:1200 msgid "Quantity must be 1 for serialized stock" msgstr "序列化库存的数量必须是 1" -#: build/models.py:1231 +#: build/models.py:1257 msgid "Selected stock item not found in BOM" msgstr "在BOM中找不到选定的库存项" -#: build/models.py:1300 stock/templates/stock/item_base.html:177 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2455 +#: build/models.py:1326 stock/templates/stock/item_base.html:172 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496 #: templates/navbar.html:38 msgid "Build" msgstr "生产" -#: build/models.py:1301 +#: build/models.py:1327 msgid "Build to allocate parts" msgstr "生产以分配部件" -#: build/models.py:1317 build/serializers.py:629 order/serializers.py:1015 -#: order/serializers.py:1036 stock/serializers.py:396 stock/serializers.py:754 +#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015 +#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754 #: stock/serializers.py:880 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/build.js:741 templates/js/translated/build.js:746 -#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2638 -#: templates/js/translated/order.js:104 templates/js/translated/order.js:2886 -#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193 -#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380 -#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:2568 +#: stock/templates/stock/item_base.html:194 +#: templates/js/translated/build.js:774 templates/js/translated/build.js:779 +#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679 +#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992 +#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299 +#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:2577 msgid "Stock Item" msgstr "库存项" -#: build/models.py:1318 +#: build/models.py:1344 msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1330 build/serializers.py:193 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:34 common/models.py:1678 +#: build/models.py:1356 build/serializers.py:193 +#: build/templates/build/build_base.html:85 +#: build/templates/build/detail.html:34 common/models.py:1697 #: company/templates/company/supplier_part.html:279 order/models.py:897 #: order/models.py:1423 order/serializers.py:1155 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2601 part/templates/part/detail.html:937 -#: part/templates/part/detail.html:1023 +#: part/models.py:2654 part/templates/part/detail.html:951 +#: part/templates/part/detail.html:1037 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:113 @@ -1011,42 +1017,42 @@ msgstr "源库存项" #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 -#: stock/serializers.py:293 stock/templates/stock/item_base.html:292 -#: stock/templates/stock/item_base.html:300 +#: stock/serializers.py:291 stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:295 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:693 -#: templates/js/translated/bom.js:863 templates/js/translated/build.js:426 -#: templates/js/translated/build.js:578 templates/js/translated/build.js:768 -#: templates/js/translated/build.js:1178 templates/js/translated/build.js:1675 -#: templates/js/translated/build.js:2088 +#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691 +#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458 +#: templates/js/translated/build.js:610 templates/js/translated/build.js:801 +#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708 +#: templates/js/translated/build.js:2129 #: templates/js/translated/model_renderers.js:120 -#: templates/js/translated/order.js:120 templates/js/translated/order.js:937 -#: templates/js/translated/order.js:1989 templates/js/translated/order.js:2190 -#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207 -#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386 -#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037 -#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147 -#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412 -#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454 -#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778 -#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702 +#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043 +#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296 +#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313 +#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492 +#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143 +#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176 +#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686 +#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711 msgid "Quantity" msgstr "数量" -#: build/models.py:1331 +#: build/models.py:1357 msgid "Stock quantity to allocate to build" msgstr "分配到生产的数量" -#: build/models.py:1339 +#: build/models.py:1365 msgid "Install into" msgstr "安装到" -#: build/models.py:1340 +#: build/models.py:1366 msgid "Destination stock item" msgstr "目标库存项" -#: build/serializers.py:138 build/serializers.py:658 -#: templates/js/translated/build.js:1166 +#: build/serializers.py:138 build/serializers.py:674 +#: templates/js/translated/build.js:1199 msgid "Build Output" msgstr "生产产出" @@ -1070,10 +1076,10 @@ msgstr "生产产出未被完成分配" msgid "Enter quantity for build output" msgstr "输入生产产出数量" -#: build/serializers.py:208 build/serializers.py:649 order/models.py:318 -#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:542 -#: part/serializers.py:974 stock/models.py:477 stock/models.py:1244 -#: stock/serializers.py:302 +#: build/serializers.py:208 build/serializers.py:665 order/models.py:318 +#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545 +#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251 +#: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" @@ -1086,8 +1092,8 @@ msgid "Integer quantity required, as the bill of materials contains trackable pa msgstr "需要整数型数值,因为BOM包含可追踪的部件" #: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159 -#: stock/serializers.py:311 templates/js/translated/order.js:1258 -#: templates/js/translated/stock.js:267 templates/js/translated/stock.js:455 +#: stock/serializers.py:309 templates/js/translated/order.js:1364 +#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "序列号" @@ -1112,17 +1118,17 @@ msgid "A list of build outputs must be provided" msgstr "必须提供生产产出列表" #: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532 -#: stock/serializers.py:322 stock/serializers.py:453 stock/serializers.py:534 +#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 #: stock/serializers.py:915 stock/serializers.py:1148 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:385 #: templates/js/translated/barcode.js:436 -#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:753 -#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1285 -#: templates/js/translated/order.js:3200 templates/js/translated/order.js:3305 -#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394 -#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956 -#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509 +#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786 +#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411 +#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500 +#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588 +#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960 +#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518 msgid "Location" msgstr "地点" @@ -1130,13 +1136,13 @@ msgstr "地点" msgid "Location for completed build outputs" msgstr "已完成生产产出的仓储地点" -#: build/serializers.py:373 build/templates/build/build_base.html:142 +#: build/serializers.py:373 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:642 -#: order/serializers.py:465 stock/templates/stock/item_base.html:423 -#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505 -#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724 -#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825 -#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718 +#: order/serializers.py:465 stock/templates/stock/item_base.html:418 +#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546 +#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830 +#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829 +#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727 msgid "Status" msgstr "状态" @@ -1164,117 +1170,121 @@ msgstr "移除未完成的产出" msgid "Delete any build outputs which have not been completed" msgstr "删除所有未完成的生产产出" -#: build/serializers.py:480 -msgid "Accept Overallocated" -msgstr "接受过度分配" +#: build/serializers.py:485 +msgid "Accept as consumed by this build order" +msgstr "" -#: build/serializers.py:481 -msgid "Accept stock items which have been overallocated to this build order" -msgstr "接受已经被过度分配至此生产订单的库存项" +#: build/serializers.py:486 +msgid "Deallocate before completing this build order" +msgstr "" -#: build/serializers.py:491 +#: build/serializers.py:494 +msgid "Overallocated Stock" +msgstr "" + +#: build/serializers.py:496 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:506 msgid "Some stock items have been overallocated" msgstr "一些库存项已被过度分配" -#: build/serializers.py:496 +#: build/serializers.py:511 msgid "Accept Unallocated" msgstr "接受未分配的" -#: build/serializers.py:497 +#: build/serializers.py:512 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "接受库存项未被完成分配至此生产订单" -#: build/serializers.py:507 templates/js/translated/build.js:195 +#: build/serializers.py:522 templates/js/translated/build.js:227 msgid "Required stock has not been fully allocated" msgstr "所需库存尚未完全分配" -#: build/serializers.py:512 +#: build/serializers.py:527 msgid "Accept Incomplete" msgstr "接受未完成" -#: build/serializers.py:513 +#: build/serializers.py:528 msgid "Accept that the required number of build outputs have not been completed" msgstr "接受所需的生产产出未完成" -#: build/serializers.py:523 templates/js/translated/build.js:199 +#: build/serializers.py:538 templates/js/translated/build.js:231 msgid "Required build quantity has not been completed" msgstr "所需生产数量尚未完成" -#: build/serializers.py:532 +#: build/serializers.py:547 msgid "Build order has incomplete outputs" msgstr "生产订单有未完成的产出" -#: build/serializers.py:535 build/templates/build/build_base.html:95 -msgid "No build outputs have been created for this build order" -msgstr "针对此生产订单,尚未创建生产产出" - -#: build/serializers.py:561 build/serializers.py:606 part/models.py:2719 -#: part/models.py:2853 +#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772 +#: part/models.py:2906 msgid "BOM Item" msgstr "BOM项" -#: build/serializers.py:571 +#: build/serializers.py:587 msgid "Build output" msgstr "生产产出" -#: build/serializers.py:579 +#: build/serializers.py:595 msgid "Build output must point to the same build" msgstr "生产产出必须指向相同的生产" -#: build/serializers.py:620 +#: build/serializers.py:636 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必须与生产订单指向相同的部件" -#: build/serializers.py:635 stock/serializers.py:767 +#: build/serializers.py:651 stock/serializers.py:767 msgid "Item must be in stock" msgstr "项目必须在库存中" -#: build/serializers.py:693 order/serializers.py:1073 +#: build/serializers.py:709 order/serializers.py:1073 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "可用量 ({q}) 超出了限制" -#: build/serializers.py:699 +#: build/serializers.py:715 msgid "Build output must be specified for allocation of tracked parts" msgstr "对于被追踪的部件的分配,必须指定生产产出" -#: build/serializers.py:706 +#: build/serializers.py:722 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "对于未被追踪的部件,无法指定生产产出" -#: build/serializers.py:711 +#: build/serializers.py:727 msgid "This stock item has already been allocated to this build output" msgstr "此库存项已被分配至此生产产出" -#: build/serializers.py:734 order/serializers.py:1319 +#: build/serializers.py:750 order/serializers.py:1319 msgid "Allocation items must be provided" msgstr "必须提供分配的项" -#: build/serializers.py:785 +#: build/serializers.py:801 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "部件来源的仓储地点(留空则可来源于任何仓储地点)" -#: build/serializers.py:793 +#: build/serializers.py:809 msgid "Exclude Location" msgstr "排除地点" -#: build/serializers.py:794 +#: build/serializers.py:810 msgid "Exclude stock items from this selected location" msgstr "从该选定的仓储地点排除库存项" -#: build/serializers.py:799 +#: build/serializers.py:815 msgid "Interchangeable Stock" msgstr "可互换的库存" -#: build/serializers.py:800 +#: build/serializers.py:816 msgid "Stock items in multiple locations can be used interchangeably" msgstr "多处地点的库存项可以互换使用" -#: build/serializers.py:805 +#: build/serializers.py:821 msgid "Substitute Stock" msgstr "可替换的库存" -#: build/serializers.py:806 +#: build/serializers.py:822 msgid "Allow allocation of substitute parts" msgstr "允许分配可替换的部件" @@ -1314,63 +1324,71 @@ msgid "Cancel Build" msgstr "取消生产" #: build/templates/build/build_base.html:59 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:62 msgid "Delete Build" msgstr "删除生产" -#: build/templates/build/build_base.html:64 -#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Complete Build" msgstr "生产完成" -#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:90 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:101 +#: build/templates/build/build_base.html:98 +msgid "No build outputs have been created for this build order" +msgstr "针对此生产订单,尚未创建生产产出" + +#: build/templates/build/build_base.html:104 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:108 +#: build/templates/build/build_base.html:111 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:118 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:123 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:128 msgid "Required build quantity has not yet been completed" msgstr "所需生产数量尚未完成" -#: build/templates/build/build_base.html:130 +#: build/templates/build/build_base.html:133 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:154 #: build/templates/build/detail.html:131 order/models.py:910 -#: order/templates/order/order_base.html:162 +#: order/templates/order/order_base.html:165 #: order/templates/order/sales_order_base.html:164 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2545 templates/js/translated/order.js:1741 -#: templates/js/translated/order.js:2051 templates/js/translated/order.js:2552 -#: templates/js/translated/order.js:3592 templates/js/translated/part.js:1038 +#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847 +#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658 +#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042 msgid "Target Date" msgstr "预计日期" -#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:159 #, python-format msgid "This build was due on %(target)s" msgstr "此次生产的截止日期为 %(target)s" -#: build/templates/build/build_base.html:156 -#: build/templates/build/build_base.html:201 -#: order/templates/order/order_base.html:98 +#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:204 +#: order/templates/order/order_base.html:101 #: order/templates/order/sales_order_base.html:94 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:361 @@ -1378,42 +1396,33 @@ msgstr "此次生产的截止日期为 %(target)s" msgid "Overdue" msgstr "逾期" -#: build/templates/build/build_base.html:163 +#: build/templates/build/build_base.html:166 #: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:171 #: templates/js/translated/table_filters.js:400 msgid "Completed" msgstr "已完成" -#: build/templates/build/build_base.html:176 +#: build/templates/build/build_base.html:179 #: build/templates/build/detail.html:94 order/models.py:1105 #: order/models.py:1199 order/models.py:1330 #: 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.html:77 -#: stock/templates/stock/item_base.html:370 +#: stock/templates/stock/item_base.html:365 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/order.js:2498 +#: templates/js/translated/order.js:2604 msgid "Sales Order" msgstr "销售订单" -#: build/templates/build/build_base.html:183 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "发布者" -#: build/templates/build/build_base.html:230 -#: build/templates/build/sidebar.html:12 -msgid "Incomplete Outputs" -msgstr "未完成输出" - -#: build/templates/build/build_base.html:231 -msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" - -#: build/templates/build/build_base.html:257 +#: build/templates/build/build_base.html:256 msgid "Delete Build Order" msgstr "删除生产订单" @@ -1430,7 +1439,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1023 -#: templates/js/translated/order.js:1393 templates/js/translated/order.js:2093 +#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199 msgid "Destination" msgstr "" @@ -1443,20 +1452,20 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 -#: stock/templates/stock/item_base.html:170 -#: templates/js/translated/build.js:1182 +#: stock/templates/stock/item_base.html:165 +#: templates/js/translated/build.js:1215 #: templates/js/translated/model_renderers.js:124 -#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839 -#: templates/js/translated/stock.js:2725 +#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843 +#: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:159 #: templates/js/translated/table_filters.js:250 msgid "Batch" msgstr "" #: build/templates/build/detail.html:126 -#: order/templates/order/order_base.html:149 +#: order/templates/order/order_base.html:152 #: order/templates/order/sales_order_base.html:158 -#: templates/js/translated/build.js:2513 +#: templates/js/translated/build.js:2554 msgid "Created" msgstr "已创建" @@ -1476,7 +1485,7 @@ msgstr "子生产订单" msgid "Allocate Stock to Build" msgstr "为生产分配库存" -#: build/templates/build/detail.html:176 templates/js/translated/build.js:1901 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942 msgid "Unallocate stock" msgstr "未分配库存" @@ -1507,7 +1516,7 @@ msgstr "订单所需部件" #: build/templates/build/detail.html:187 #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:85 -#: part/templates/part/category.html:177 templates/js/translated/order.js:977 +#: part/templates/part/category.html:183 templates/js/translated/order.js:1083 msgid "Order Parts" msgstr "订购商品" @@ -1560,12 +1569,12 @@ msgid "Delete outputs" msgstr "" #: build/templates/build/detail.html:267 -#: stock/templates/stock/location.html:197 templates/stock_table.html:27 +#: stock/templates/stock/location.html:202 templates/stock_table.html:27 msgid "Printing Actions" msgstr "打印操作" #: build/templates/build/detail.html:271 build/templates/build/detail.html:272 -#: stock/templates/stock/location.html:201 templates/stock_table.html:31 +#: stock/templates/stock/location.html:206 templates/stock_table.html:31 msgid "Print labels" msgstr "打印标签" @@ -1579,7 +1588,7 @@ msgstr "" #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:82 #: order/templates/order/sales_order_detail.html:135 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:207 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212 #: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" @@ -1589,15 +1598,15 @@ msgstr "附件" msgid "Build Notes" msgstr "生产备注" -#: build/templates/build/detail.html:502 +#: build/templates/build/detail.html:504 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:503 +#: build/templates/build/detail.html:505 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:313 +#: build/templates/build/index.html:18 part/templates/part/detail.html:318 msgid "New Build Order" msgstr "新建生产订单" @@ -1609,6 +1618,10 @@ msgstr "打印生产订单" msgid "Build Order Details" msgstr "" +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "未完成输出" + #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" msgstr "" @@ -1838,7 +1851,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2412 report/models.py:158 +#: common/models.py:951 part/models.py:2465 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:484 msgid "Template" @@ -1848,7 +1861,7 @@ msgstr "模板" msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448 +#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446 #: templates/js/translated/table_filters.js:176 #: templates/js/translated/table_filters.js:447 msgid "Assembly" @@ -1858,7 +1871,7 @@ msgstr "组装" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:893 +#: common/models.py:965 part/models.py:900 #: templates/js/translated/table_filters.js:455 msgid "Component" msgstr "组件" @@ -1867,7 +1880,7 @@ msgstr "组件" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:904 +#: common/models.py:972 part/models.py:911 msgid "Purchaseable" msgstr "可购买" @@ -1875,7 +1888,7 @@ msgstr "可购买" msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:979 part/models.py:909 +#: common/models.py:979 part/models.py:916 #: templates/js/translated/table_filters.js:476 msgid "Salable" msgstr "可销售" @@ -1884,7 +1897,7 @@ msgstr "可销售" msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:986 part/models.py:899 +#: common/models.py:986 part/models.py:906 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:108 #: templates/js/translated/table_filters.js:488 @@ -1895,7 +1908,7 @@ msgstr "可追踪" msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:993 part/models.py:919 +#: common/models.py:993 part/models.py:926 #: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:492 @@ -1979,608 +1992,632 @@ msgid "Format to display the part name" msgstr "" #: common/models.py:1074 -msgid "Enable label printing" +msgid "Part Category Default Icon" msgstr "" #: common/models.py:1075 -msgid "Enable label printing from the web interface" +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1080 +msgid "Enable label printing" msgstr "" #: common/models.py:1081 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1087 msgid "Label Image DPI" msgstr "" -#: common/models.py:1082 +#: common/models.py:1088 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Enable Reports" msgstr "" -#: common/models.py:1092 +#: common/models.py:1098 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1098 templates/stats.html:25 +#: common/models.py:1104 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:1099 +#: common/models.py:1105 msgid "Generate reports in debug mode (HTML output)" msgstr "在调试模式生成报告(HTML输出)" -#: common/models.py:1105 +#: common/models.py:1111 msgid "Page Size" msgstr "页面大小" -#: common/models.py:1106 +#: common/models.py:1112 msgid "Default page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: common/models.py:1116 +#: common/models.py:1122 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1117 +#: common/models.py:1123 msgid "Enable generation of test reports" msgstr "启用生成测试报表" -#: common/models.py:1123 +#: common/models.py:1129 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1124 +#: common/models.py:1130 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1130 +#: common/models.py:1136 msgid "Batch Code Template" msgstr "" -#: common/models.py:1131 +#: common/models.py:1137 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1136 +#: common/models.py:1142 msgid "Stock Expiry" msgstr "库存到期" -#: common/models.py:1137 +#: common/models.py:1143 msgid "Enable stock expiry functionality" msgstr "启用库存到期功能" -#: common/models.py:1143 +#: common/models.py:1149 msgid "Sell Expired Stock" msgstr "销售过期库存" -#: common/models.py:1144 +#: common/models.py:1150 msgid "Allow sale of expired stock" msgstr "允许销售过期库存" -#: common/models.py:1150 +#: common/models.py:1156 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1151 +#: common/models.py:1157 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "days" msgstr "天" -#: common/models.py:1158 +#: common/models.py:1164 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1159 +#: common/models.py:1165 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1171 msgid "Stock Ownership Control" msgstr "库存所有权控制" -#: common/models.py:1166 +#: common/models.py:1172 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1172 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1173 -msgid "Required pattern for generating Build Order reference field" +#: common/models.py:1178 +msgid "Stock Location Default Icon" msgstr "" #: common/models.py:1179 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1184 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1185 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1191 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1180 +#: common/models.py:1192 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1186 +#: common/models.py:1198 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1187 +#: common/models.py:1199 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1193 +#: common/models.py:1205 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1194 +#: common/models.py:1206 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1201 +#: common/models.py:1213 msgid "Enable password forgot" msgstr "" -#: common/models.py:1202 +#: common/models.py:1214 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1208 +#: common/models.py:1220 msgid "Enable registration" msgstr "" -#: common/models.py:1209 +#: common/models.py:1221 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1215 +#: common/models.py:1227 msgid "Enable SSO" msgstr "" -#: common/models.py:1216 +#: common/models.py:1228 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1222 +#: common/models.py:1234 msgid "Email required" msgstr "" -#: common/models.py:1223 +#: common/models.py:1235 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1229 +#: common/models.py:1241 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1230 +#: common/models.py:1242 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1236 +#: common/models.py:1248 msgid "Mail twice" msgstr "" -#: common/models.py:1237 +#: common/models.py:1249 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1243 +#: common/models.py:1255 msgid "Password twice" msgstr "" -#: common/models.py:1244 +#: common/models.py:1256 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1250 +#: common/models.py:1262 msgid "Group on signup" msgstr "" -#: common/models.py:1251 +#: common/models.py:1263 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1257 +#: common/models.py:1269 msgid "Enforce MFA" msgstr "" -#: common/models.py:1258 +#: common/models.py:1270 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1264 +#: common/models.py:1276 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1265 +#: common/models.py:1277 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1273 +#: common/models.py:1284 +msgid "Check plugin signatures" +msgstr "" + +#: common/models.py:1285 +msgid "Check and show signatures for plugins" +msgstr "" + +#: common/models.py:1292 msgid "Enable URL integration" msgstr "" -#: common/models.py:1274 +#: common/models.py:1293 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1281 +#: common/models.py:1300 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1282 +#: common/models.py:1301 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1289 +#: common/models.py:1308 msgid "Enable app integration" msgstr "" -#: common/models.py:1290 +#: common/models.py:1309 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1297 +#: common/models.py:1316 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1298 +#: common/models.py:1317 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1305 +#: common/models.py:1324 msgid "Enable event integration" msgstr "" -#: common/models.py:1306 +#: common/models.py:1325 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1323 common/models.py:1639 +#: common/models.py:1342 common/models.py:1658 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1345 +#: common/models.py:1364 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1346 +#: common/models.py:1365 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1352 +#: common/models.py:1371 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1353 +#: common/models.py:1372 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1359 +#: common/models.py:1378 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:1360 +#: common/models.py:1379 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:1366 +#: common/models.py:1385 msgid "Recent Part Count" msgstr "" -#: common/models.py:1367 +#: common/models.py:1386 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1373 +#: common/models.py:1392 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1374 +#: common/models.py:1393 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1399 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1381 +#: common/models.py:1400 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1406 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1407 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1413 msgid "Show low stock" msgstr "" -#: common/models.py:1395 +#: common/models.py:1414 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1420 msgid "Show depleted stock" msgstr "" -#: common/models.py:1402 +#: common/models.py:1421 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1427 msgid "Show needed stock" msgstr "" -#: common/models.py:1409 +#: common/models.py:1428 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1415 +#: common/models.py:1434 msgid "Show expired stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1435 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1441 msgid "Show stale stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1442 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Show pending builds" msgstr "" -#: common/models.py:1430 +#: common/models.py:1449 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1455 msgid "Show overdue builds" msgstr "显示逾期生产" -#: common/models.py:1437 +#: common/models.py:1456 msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:1443 +#: common/models.py:1462 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1444 +#: common/models.py:1463 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1469 msgid "Show overdue POs" msgstr "" -#: common/models.py:1451 +#: common/models.py:1470 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1476 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1483 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:1472 +#: common/models.py:1491 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:1478 +#: common/models.py:1497 msgid "Inline report display" msgstr "" -#: common/models.py:1479 +#: common/models.py:1498 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:1485 +#: common/models.py:1504 msgid "Search Parts" msgstr "" -#: common/models.py:1486 +#: common/models.py:1505 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1492 +#: common/models.py:1511 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1493 +#: common/models.py:1512 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1499 +#: common/models.py:1518 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1500 +#: common/models.py:1519 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Search Categories" msgstr "" -#: common/models.py:1514 +#: common/models.py:1533 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1539 msgid "Search Stock" msgstr "" -#: common/models.py:1521 +#: common/models.py:1540 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1546 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1528 +#: common/models.py:1547 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1553 msgid "Search Locations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1554 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1560 msgid "Search Companies" msgstr "" -#: common/models.py:1542 +#: common/models.py:1561 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1567 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1549 +#: common/models.py:1568 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1574 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1556 +#: common/models.py:1575 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1581 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1563 +#: common/models.py:1582 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1588 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1589 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1595 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:1577 +#: common/models.py:1596 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1602 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:1584 +#: common/models.py:1603 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:1590 +#: common/models.py:1609 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1591 +#: common/models.py:1610 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1597 +#: common/models.py:1616 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1598 +#: common/models.py:1617 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Date Format" msgstr "" -#: common/models.py:1605 +#: common/models.py:1624 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1619 part/templates/part/detail.html:41 +#: common/models.py:1638 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1620 +#: common/models.py:1639 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1679 +#: common/models.py:1698 msgid "Price break quantity" msgstr "" -#: common/models.py:1686 company/serializers.py:366 +#: common/models.py:1705 company/serializers.py:366 #: company/templates/company/supplier_part.html:284 order/models.py:938 -#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181 msgid "Price" msgstr "价格" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1847 common/models.py:2025 +#: common/models.py:1866 common/models.py:2044 msgid "Endpoint" msgstr "" -#: common/models.py:1848 +#: common/models.py:1867 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Name for this webhook" msgstr "" -#: common/models.py:1862 part/models.py:914 plugin/models.py:99 +#: common/models.py:1881 part/models.py:921 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:104 #: templates/js/translated/table_filters.js:316 @@ -2588,67 +2625,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1863 +#: common/models.py:1882 msgid "Is this webhook active" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Token" msgstr "令牌" -#: common/models.py:1878 +#: common/models.py:1897 msgid "Token for access" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Secret" msgstr "" -#: common/models.py:1886 +#: common/models.py:1905 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1992 +#: common/models.py:2011 msgid "Message ID" msgstr "" -#: common/models.py:1993 +#: common/models.py:2012 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2001 +#: common/models.py:2020 msgid "Host" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2009 +#: common/models.py:2028 msgid "Header" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Header of this message" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Body" msgstr "" -#: common/models.py:2017 +#: common/models.py:2036 msgid "Body of this message" msgstr "" -#: common/models.py:2026 +#: common/models.py:2045 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2031 +#: common/models.py:2050 msgid "Worked on" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Was the work on this message finished?" msgstr "" @@ -2755,7 +2792,7 @@ msgstr "" msgid "Link to external company information" msgstr "链接到外部公司信息" -#: company/models.py:135 part/models.py:808 +#: company/models.py:135 part/models.py:815 msgid "Image" msgstr "图片" @@ -2788,8 +2825,8 @@ msgid "Does this company manufacture parts?" msgstr "该公司制造商品吗?" #: company/models.py:148 company/serializers.py:372 -#: company/templates/company/company_base.html:106 part/serializers.py:151 -#: part/serializers.py:182 stock/serializers.py:180 +#: company/templates/company/company_base.html:106 part/serializers.py:153 +#: part/serializers.py:184 stock/serializers.py:178 msgid "Currency" msgstr "货币" @@ -2797,9 +2834,9 @@ msgstr "货币" msgid "Default currency used for this company" msgstr "该公司使用的默认货币" -#: company/models.py:248 company/models.py:481 stock/models.py:591 -#: stock/serializers.py:87 stock/templates/stock/item_base.html:148 -#: templates/js/translated/bom.js:543 +#: company/models.py:248 company/models.py:481 stock/models.py:598 +#: stock/serializers.py:85 stock/templates/stock/item_base.html:143 +#: templates/js/translated/bom.js:542 msgid "Base Part" msgstr "" @@ -2810,7 +2847,7 @@ msgstr "选择商品" #: company/models.py:263 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:124 -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:397 #: templates/js/translated/company.js:498 #: templates/js/translated/company.js:633 @@ -2828,8 +2865,8 @@ msgstr "选择制造商" #: templates/js/translated/company.js:269 #: templates/js/translated/company.js:497 #: templates/js/translated/company.js:649 -#: templates/js/translated/company.js:937 templates/js/translated/order.js:1971 -#: templates/js/translated/part.js:247 templates/js/translated/part.js:1023 +#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077 +#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027 msgid "MPN" msgstr "" @@ -2848,7 +2885,7 @@ msgstr "制造商商品描述" #: company/models.py:328 company/models.py:352 company/models.py:504 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:222 +#: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "制造商商品" @@ -2858,9 +2895,9 @@ msgstr "参数名称" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2088 templates/js/translated/company.js:546 -#: templates/js/translated/company.js:764 templates/js/translated/part.js:845 -#: templates/js/translated/stock.js:1356 +#: stock/models.py:2095 templates/js/translated/company.js:546 +#: templates/js/translated/company.js:764 templates/js/translated/part.js:849 +#: templates/js/translated/stock.js:1360 msgid "Value" msgstr "数值" @@ -2868,10 +2905,10 @@ msgstr "数值" msgid "Parameter value" msgstr "参数值" -#: company/models.py:372 part/models.py:881 part/models.py:2379 +#: company/models.py:372 part/models.py:888 part/models.py:2425 #: part/templates/part/part_base.html:280 #: templates/InvenTree/settings/settings.html:352 -#: templates/js/translated/company.js:770 templates/js/translated/part.js:851 +#: templates/js/translated/company.js:770 templates/js/translated/part.js:855 msgid "Units" msgstr "单位" @@ -2885,13 +2922,13 @@ msgstr "" #: company/models.py:491 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:108 order/models.py:258 -#: order/templates/order/order_base.html:112 part/bom.py:237 part/bom.py:265 -#: stock/templates/stock/item_base.html:229 +#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265 +#: stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:268 #: templates/js/translated/company.js:401 -#: templates/js/translated/company.js:893 templates/js/translated/order.js:1707 -#: templates/js/translated/part.js:217 templates/js/translated/part.js:991 +#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813 +#: templates/js/translated/part.js:217 templates/js/translated/part.js:995 #: templates/js/translated/table_filters.js:423 msgid "Supplier" msgstr "供应商" @@ -2902,8 +2939,8 @@ msgstr "选择供应商" #: company/models.py:497 company/templates/company/supplier_part.html:118 #: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267 -#: templates/js/translated/order.js:1958 templates/js/translated/part.js:228 -#: templates/js/translated/part.js:1009 +#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228 +#: templates/js/translated/part.js:1013 msgid "SKU" msgstr "" @@ -2924,23 +2961,23 @@ msgid "Supplier part description" msgstr "供应商商品描述" #: company/models.py:522 company/templates/company/supplier_part.html:146 -#: part/models.py:2613 part/templates/part/upload_bom.html:59 +#: part/models.py:2666 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:401 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 msgid "Note" msgstr "备注" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "base cost" msgstr "" -#: company/models.py:526 part/models.py:1735 +#: company/models.py:526 part/models.py:1781 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" #: company/models.py:528 company/templates/company/supplier_part.html:139 -#: stock/models.py:617 stock/templates/stock/item_base.html:245 -#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1972 +#: stock/models.py:624 stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976 msgid "Packaging" msgstr "打包" @@ -2948,7 +2985,7 @@ msgstr "打包" msgid "Part packaging" msgstr "商品打包" -#: company/models.py:530 part/models.py:1737 +#: company/models.py:530 part/models.py:1783 msgid "multiple" msgstr "" @@ -2959,9 +2996,9 @@ msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:94 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:913 templates/js/translated/build.js:1789 -#: templates/js/translated/build.js:2645 templates/js/translated/company.js:979 -#: templates/js/translated/part.js:596 templates/js/translated/part.js:599 +#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823 +#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979 +#: templates/js/translated/part.js:600 templates/js/translated/part.js:603 #: templates/js/translated/table_filters.js:186 msgid "Available" msgstr "空闲" @@ -2992,12 +3029,12 @@ msgstr "货币代码" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386 +#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386 msgid "Company" msgstr "公司" #: company/templates/company/company_base.html:22 -#: templates/js/translated/order.js:540 +#: templates/js/translated/order.js:624 msgid "Create Purchase Order" msgstr "创建采购订单" @@ -3034,12 +3071,12 @@ msgid "Download image from URL" msgstr "从 URL 下载图片" #: company/templates/company/company_base.html:86 order/models.py:637 -#: order/templates/order/sales_order_base.html:116 stock/models.py:636 -#: stock/models.py:637 stock/serializers.py:809 -#: stock/templates/stock/item_base.html:401 +#: order/templates/order/sales_order_base.html:116 stock/models.py:643 +#: stock/models.py:644 stock/serializers.py:809 +#: stock/templates/stock/item_base.html:396 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513 -#: templates/js/translated/stock.js:2550 +#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619 +#: templates/js/translated/stock.js:2559 #: templates/js/translated/table_filters.js:427 msgid "Customer" msgstr "客户" @@ -3064,7 +3101,7 @@ msgstr "下载图片" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:118 templates/js/translated/search.js:170 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172 msgid "Supplier Parts" msgstr "供应商商品" @@ -3074,13 +3111,13 @@ msgstr "创建新的供应商商品" #: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:354 +#: part/templates/part/detail.html:359 msgid "New Supplier Part" msgstr "新建供应商商品" #: company/templates/company/detail.html:36 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:176 +#: part/templates/part/category.html:182 msgid "Order parts" msgstr "订购商品" @@ -3094,8 +3131,8 @@ msgstr "删除商品" msgid "Delete Parts" msgstr "删除商品" -#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 -#: templates/js/translated/search.js:183 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:185 msgid "Manufacturer Parts" msgstr "制造商商品" @@ -3103,7 +3140,7 @@ msgstr "制造商商品" msgid "Create new manufacturer part" msgstr "新建制造商商品" -#: company/templates/company/detail.html:66 part/templates/part/detail.html:384 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:389 msgid "New Manufacturer Part" msgstr "新建制造商商品" @@ -3117,10 +3154,10 @@ msgstr "供货商库存" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:79 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198 +#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:275 templates/navbar.html:50 +#: templates/js/translated/search.js:277 templates/navbar.html:50 #: users/models.py:42 msgid "Purchase Orders" msgstr "采购订单" @@ -3140,10 +3177,10 @@ msgstr "新建采购订单" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:102 part/templates/part/part_sidebar.html:41 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218 +#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:299 templates/navbar.html:61 +#: templates/js/translated/search.js:301 templates/navbar.html:61 #: users/models.py:43 msgid "Sales Orders" msgstr "销售订单" @@ -3159,7 +3196,7 @@ msgid "New Sales Order" msgstr "新建销售订单" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1660 +#: templates/js/translated/build.js:1693 msgid "Assigned Stock" msgstr "" @@ -3168,14 +3205,14 @@ msgid "Supplier List" msgstr "供应商列表" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179 +#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181 #: templates/navbar.html:49 msgid "Manufacturers" msgstr "制造商" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:186 -#: part/templates/part/detail.html:82 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80 msgid "Order part" msgstr "订购商品" @@ -3201,19 +3238,19 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168 -#: templates/InvenTree/search.html:189 templates/navbar.html:48 +#: templates/InvenTree/search.html:191 templates/navbar.html:48 msgid "Suppliers" msgstr "供应商" #: company/templates/company/manufacturer_part.html:136 -#: part/templates/part/detail.html:365 +#: part/templates/part/detail.html:370 msgid "Delete supplier parts" msgstr "删除供应商商品" #: company/templates/company/manufacturer_part.html:136 #: company/templates/company/manufacturer_part.html:183 -#: part/templates/part/detail.html:366 part/templates/part/detail.html:396 -#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:33 +#: part/templates/part/detail.html:371 part/templates/part/detail.html:401 +#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34 #: users/models.py:220 msgid "Delete" msgstr "删除" @@ -3221,14 +3258,14 @@ msgstr "删除" #: company/templates/company/manufacturer_part.html:166 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:19 -#: part/templates/part/detail.html:181 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "参数" #: company/templates/company/manufacturer_part.html:170 -#: part/templates/part/detail.html:186 +#: part/templates/part/detail.html:191 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:66 +#: templates/InvenTree/settings/part.html:68 msgid "New Parameter" msgstr "新建参数" @@ -3237,7 +3274,7 @@ msgid "Delete parameters" msgstr "删除参数" #: company/templates/company/manufacturer_part.html:245 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:840 msgid "Add Parameter" msgstr "添加参数" @@ -3258,10 +3295,10 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:600 -#: stock/templates/stock/item_base.html:238 -#: templates/js/translated/company.js:909 templates/js/translated/order.js:935 -#: templates/js/translated/stock.js:1929 +#: company/templates/company/supplier_part.html:24 stock/models.py:607 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041 +#: templates/js/translated/stock.js:1933 msgid "Supplier Part" msgstr "供应商商品" @@ -3272,7 +3309,7 @@ msgstr "" #: company/templates/company/supplier_part.html:40 #: company/templates/company/supplier_part.html:41 #: company/templates/company/supplier_part.html:187 -#: part/templates/part/detail.html:83 +#: part/templates/part/detail.html:88 msgid "Order Part" msgstr "订购商品" @@ -3305,13 +3342,13 @@ msgid "Supplier Part Stock" msgstr "供货商商品库存" #: company/templates/company/supplier_part.html:168 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:176 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:169 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:177 -#: templates/js/translated/stock.js:431 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182 +#: templates/js/translated/stock.js:435 msgid "New Stock Item" msgstr "" @@ -3327,7 +3364,7 @@ msgstr "价格信息" #: company/templates/company/supplier_part.html:212 #: company/templates/company/supplier_part.html:326 -#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224 +#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253 msgid "Add Price Break" msgstr "" @@ -3336,12 +3373,12 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part.html:252 -#: templates/js/translated/part.js:2234 +#: templates/js/translated/part.js:2263 msgid "Delete Price Break" msgstr "" #: company/templates/company/supplier_part.html:266 -#: templates/js/translated/part.js:2248 +#: templates/js/translated/part.js:2277 msgid "Edit Price Break" msgstr "" @@ -3363,14 +3400,13 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:19 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:151 +#: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:45 -#: templates/js/translated/bom.js:555 templates/js/translated/part.js:747 -#: templates/js/translated/part.js:1295 templates/js/translated/part.js:1456 -#: templates/js/translated/stock.js:955 templates/js/translated/stock.js:1750 -#: templates/navbar.html:31 +#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313 +#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:1754 templates/navbar.html:31 msgid "Stock" msgstr "库存" @@ -3389,14 +3425,14 @@ msgid "Pricing" msgstr "定价" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/templates/part/category.html:197 +#: part/templates/part/category.html:203 #: part/templates/part/category_sidebar.html:17 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:161 -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:166 +#: stock/templates/stock/location.html:178 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223 -#: templates/js/translated/stock.js:2427 users/models.py:40 +#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225 +#: templates/js/translated/stock.js:2436 users/models.py:40 msgid "Stock Items" msgstr "库存项" @@ -3408,7 +3444,7 @@ msgstr "新增供应商" msgid "New Manufacturer" msgstr "新建制造商" -#: company/views.py:44 templates/InvenTree/search.html:209 +#: company/views.py:44 templates/InvenTree/search.html:211 #: templates/navbar.html:60 msgid "Customers" msgstr "客户信息" @@ -3417,7 +3453,7 @@ msgstr "客户信息" msgid "New Customer" msgstr "新建客户" -#: company/views.py:52 templates/js/translated/search.js:252 +#: company/views.py:52 templates/js/translated/search.js:254 msgid "Companies" msgstr "公司" @@ -3490,6 +3526,10 @@ msgstr "查询筛选器 (逗号分隔的键值对列表" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "商品查询筛选器 (逗号分隔的键值对列表)" +#: order/api.py:134 +msgid "No matching purchase order found" +msgstr "" + #: order/models.py:82 msgid "Order description" msgstr "" @@ -3522,8 +3562,8 @@ msgstr "" msgid "Company from which the items are being ordered" msgstr "订购该商品的公司" -#: order/models.py:262 order/templates/order/order_base.html:124 -#: templates/js/translated/order.js:1716 +#: order/models.py:262 order/templates/order/order_base.html:127 +#: templates/js/translated/order.js:1822 msgid "Supplier Reference" msgstr "" @@ -3580,7 +3620,7 @@ msgid "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:652 order/models.py:1204 -#: templates/js/translated/order.js:2560 templates/js/translated/order.js:2722 +#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828 msgid "Shipment Date" msgstr "" @@ -3642,7 +3682,7 @@ msgstr "" #: order/models.py:983 order/models.py:1063 order/models.py:1104 #: order/models.py:1198 order/models.py:1330 -#: templates/js/translated/order.js:3178 +#: templates/js/translated/order.js:3284 msgid "Order" msgstr "" @@ -3650,11 +3690,11 @@ msgstr "" #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:76 -#: stock/templates/stock/item_base.html:184 +#: stock/templates/stock/item_base.html:179 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691 -#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909 -#: templates/js/translated/stock.js:2531 +#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972 +#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540 msgid "Purchase Order" msgstr "" @@ -3662,9 +3702,9 @@ msgstr "" msgid "Supplier part" msgstr "供应商商品" -#: order/models.py:1009 order/templates/order/order_base.html:169 -#: templates/js/translated/order.js:1390 templates/js/translated/order.js:2073 -#: templates/js/translated/part.js:1060 templates/js/translated/part.js:1087 +#: order/models.py:1009 order/templates/order/order_base.html:172 +#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179 +#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105 #: templates/js/translated/table_filters.js:338 msgid "Received" msgstr "" @@ -3673,9 +3713,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:727 -#: stock/serializers.py:171 stock/templates/stock/item_base.html:191 -#: templates/js/translated/stock.js:1960 +#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734 +#: stock/serializers.py:169 stock/templates/stock/item_base.html:186 +#: templates/js/translated/stock.js:1964 msgid "Purchase Price" msgstr "采购价格" @@ -3849,11 +3889,11 @@ msgstr "" msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:448 templates/js/translated/order.js:1248 +#: order/serializers.py:448 templates/js/translated/order.js:1354 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:456 templates/js/translated/order.js:1259 +#: order/serializers.py:456 templates/js/translated/order.js:1365 msgid "Enter serial numbers for incoming stock items" msgstr "" @@ -3963,77 +4003,77 @@ msgstr "" msgid "Cancel order" msgstr "取消订单" -#: order/templates/order/order_base.html:52 +#: order/templates/order/order_base.html:50 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:55 msgid "Place order" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:59 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:58 +#: order/templates/order/order_base.html:61 #: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:60 +#: order/templates/order/order_base.html:63 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:62 +#: order/templates/order/order_base.html:65 #: order/templates/order/sales_order_base.html:68 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:87 #: order/templates/order/sales_order_base.html:80 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/sales_order_base.html:85 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:94 +#: order/templates/order/order_base.html:97 #: order/templates/order/sales_order_base.html:90 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:117 +#: order/templates/order/order_base.html:120 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:130 +#: order/templates/order/order_base.html:133 #: order/templates/order/sales_order_base.html:129 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:136 +#: order/templates/order/order_base.html:139 #: order/templates/order/sales_order_base.html:135 #: order/templates/order/sales_order_base.html:145 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:155 +#: order/templates/order/order_base.html:158 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:183 +#: order/templates/order/order_base.html:186 #: order/templates/order/sales_order_base.html:190 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:187 +#: order/templates/order/order_base.html:190 #: order/templates/order/sales_order_base.html:194 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:243 -msgid "Edit Purchase Order" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 @@ -4060,11 +4100,11 @@ msgstr "选择供应商商品" #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:77 templates/js/translated/build.js:431 -#: templates/js/translated/build.js:583 templates/js/translated/build.js:1974 -#: templates/js/translated/order.js:884 templates/js/translated/order.js:1337 -#: templates/js/translated/order.js:2797 templates/js/translated/stock.js:621 -#: templates/js/translated/stock.js:789 +#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463 +#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015 +#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443 +#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:793 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "移除行" @@ -4099,7 +4139,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:26 #: order/templates/order/sales_order_detail.html:22 #: order/templates/order/sales_order_detail.html:255 -#: templates/js/translated/order.js:557 +#: templates/js/translated/order.js:663 msgid "Add Line Item" msgstr "" @@ -4145,7 +4185,7 @@ msgid "Print packing list" msgstr "" #: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/order.js:229 +#: templates/js/translated/order.js:231 msgid "Complete Shipments" msgstr "" @@ -4159,7 +4199,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:123 -#: templates/js/translated/order.js:2526 +#: templates/js/translated/order.js:2632 msgid "Customer Reference" msgstr "" @@ -4183,8 +4223,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:72 -#: templates/attachment_table.html:6 templates/js/translated/bom.js:1110 -#: templates/js/translated/build.js:1882 +#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108 +#: templates/js/translated/build.js:1923 msgid "Actions" msgstr "" @@ -4226,40 +4266,40 @@ msgstr "" msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:584 +#: part/api.py:638 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:704 +#: part/api.py:775 msgid "Valid" msgstr "" -#: part/api.py:705 +#: part/api.py:776 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:711 +#: part/api.py:782 msgid "This option must be selected" msgstr "" -#: part/api.py:1134 +#: part/api.py:1205 msgid "Must be greater than zero" msgstr "必须大于0" -#: part/api.py:1138 +#: part/api.py:1209 msgid "Must be a valid quantity" msgstr "必须是有效的数量" -#: part/api.py:1153 +#: part/api.py:1224 msgid "Specify location for initial part stock" msgstr "指定初始初始商品仓储地点" -#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207 +#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278 msgid "This field is required" msgstr "此字段为必填" -#: part/bom.py:127 part/models.py:98 part/models.py:817 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +#: part/bom.py:127 part/models.py:98 part/models.py:824 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "默认仓储地点" @@ -4268,14 +4308,14 @@ msgid "Total Stock" msgstr "" #: part/bom.py:129 part/templates/part/part_base.html:189 -#: templates/js/translated/order.js:3618 +#: templates/js/translated/order.js:3724 msgid "Available Stock" msgstr "可用库存" #: part/bom.py:130 part/templates/part/part_base.html:207 -#: templates/js/translated/bom.js:947 templates/js/translated/part.js:586 -#: templates/js/translated/part.js:606 templates/js/translated/part.js:1298 -#: templates/js/translated/part.js:1470 templates/js/translated/part.js:1486 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853 +#: templates/js/translated/part.js:590 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503 #: templates/js/translated/table_filters.js:68 msgid "On Order" msgstr "" @@ -4296,516 +4336,528 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:115 part/models.py:2455 part/templates/part/category.html:15 +#: part/models.py:107 stock/models.py:84 +msgid "Icon" +msgstr "" + +#: part/models.py:108 stock/models.py:85 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" -#: part/models.py:116 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:198 +#: part/models.py:123 part/templates/part/category.html:134 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200 #: users/models.py:37 msgid "Part Categories" msgstr "商品类别" -#: part/models.py:337 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:17 part/templates/part/category.html:133 -#: part/templates/part/category.html:153 +#: part/models.py:344 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:23 part/templates/part/category.html:139 +#: part/templates/part/category.html:159 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144 +#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "商品" -#: part/models.py:422 +#: part/models.py:429 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:492 part/models.py:504 +#: part/models.py:499 part/models.py:511 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:621 +#: part/models.py:628 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:625 +#: part/models.py:632 msgid "Next available serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:637 msgid "Most recent serial number is" msgstr "" -#: part/models.py:711 +#: part/models.py:718 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:738 part/models.py:2509 +#: part/models.py:745 part/models.py:2562 msgid "Part name" msgstr "商品名称" -#: part/models.py:745 +#: part/models.py:752 msgid "Is Template" msgstr "" -#: part/models.py:746 +#: part/models.py:753 msgid "Is this part a template part?" msgstr "" -#: part/models.py:756 +#: part/models.py:763 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:757 +#: part/models.py:764 msgid "Variant Of" msgstr "" -#: part/models.py:763 +#: part/models.py:770 msgid "Part description" msgstr "商品描述" -#: part/models.py:768 part/templates/part/category.html:86 +#: part/models.py:775 part/templates/part/category.html:92 #: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "关键词" -#: part/models.py:769 +#: part/models.py:776 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:776 part/models.py:2211 part/models.py:2454 +#: part/models.py:783 part/models.py:2257 part/models.py:2507 #: part/templates/part/part_base.html:257 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 -#: templates/js/translated/part.js:1438 templates/js/translated/part.js:1664 +#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688 msgid "Category" msgstr "类别" -#: part/models.py:777 +#: part/models.py:784 msgid "Part category" msgstr "商品类别" -#: part/models.py:782 part/templates/part/part_base.html:266 -#: templates/js/translated/part.js:735 templates/js/translated/part.js:1391 -#: templates/js/translated/stock.js:1722 +#: part/models.py:789 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409 +#: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:783 +#: part/models.py:790 msgid "Internal Part Number" msgstr "内部商品编号" -#: part/models.py:789 +#: part/models.py:796 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:790 part/templates/part/part_base.html:273 -#: report/models.py:171 templates/js/translated/part.js:739 +#: part/models.py:797 part/templates/part/part_base.html:273 +#: report/models.py:171 templates/js/translated/part.js:743 msgid "Revision" msgstr "" -#: part/models.py:815 +#: part/models.py:822 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:860 part/templates/part/part_base.html:339 +#: part/models.py:867 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:861 +#: part/models.py:868 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:868 +#: part/models.py:875 msgid "Default Expiry" msgstr "" -#: part/models.py:869 +#: part/models.py:876 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:874 part/templates/part/part_base.html:200 +#: part/models.py:881 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "最低库存" -#: part/models.py:875 +#: part/models.py:882 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:882 +#: part/models.py:889 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:888 +#: part/models.py:895 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:894 +#: part/models.py:901 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:900 +#: part/models.py:907 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:905 +#: part/models.py:912 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:910 +#: part/models.py:917 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:915 +#: part/models.py:922 msgid "Is this part active?" msgstr "" -#: part/models.py:920 +#: part/models.py:927 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:922 +#: part/models.py:929 msgid "Part notes" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "BOM checksum" msgstr "" -#: part/models.py:924 +#: part/models.py:931 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:927 +#: part/models.py:934 msgid "BOM checked by" msgstr "" -#: part/models.py:929 +#: part/models.py:936 msgid "BOM checked date" msgstr "" -#: part/models.py:933 +#: part/models.py:940 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1737 +#: part/models.py:1783 msgid "Sell multiple" msgstr "" -#: part/models.py:2258 +#: part/models.py:2304 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2275 +#: part/models.py:2321 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2295 templates/js/translated/part.js:1997 -#: templates/js/translated/stock.js:1336 +#: part/models.py:2341 templates/js/translated/part.js:2026 +#: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2296 +#: part/models.py:2342 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2301 +#: part/models.py:2347 msgid "Test Description" msgstr "" -#: part/models.py:2302 +#: part/models.py:2348 msgid "Enter description for this test" msgstr "" -#: part/models.py:2307 templates/js/translated/part.js:2006 +#: part/models.py:2353 templates/js/translated/part.js:2035 #: templates/js/translated/table_filters.js:302 msgid "Required" msgstr "" -#: part/models.py:2308 +#: part/models.py:2354 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2313 templates/js/translated/part.js:2014 +#: part/models.py:2359 templates/js/translated/part.js:2043 msgid "Requires Value" msgstr "" -#: part/models.py:2314 +#: part/models.py:2360 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2319 templates/js/translated/part.js:2021 +#: part/models.py:2365 templates/js/translated/part.js:2050 msgid "Requires Attachment" msgstr "" -#: part/models.py:2320 +#: part/models.py:2366 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2328 +#: part/models.py:2374 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2364 +#: part/models.py:2410 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2372 +#: part/models.py:2418 msgid "Parameter Name" msgstr "" -#: part/models.py:2379 +#: part/models.py:2425 msgid "Parameter Units" msgstr "" -#: part/models.py:2410 +#: part/models.py:2430 +msgid "Parameter description" +msgstr "" + +#: part/models.py:2463 msgid "Parent Part" msgstr "" -#: part/models.py:2412 part/models.py:2460 part/models.py:2461 +#: part/models.py:2465 part/models.py:2513 part/models.py:2514 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Data" msgstr "" -#: part/models.py:2414 +#: part/models.py:2467 msgid "Parameter Value" msgstr "" -#: part/models.py:2465 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2518 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "默认值" -#: part/models.py:2466 +#: part/models.py:2519 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2501 +#: part/models.py:2554 msgid "Part ID or part name" msgstr "" -#: part/models.py:2504 templates/js/translated/model_renderers.js:212 +#: part/models.py:2557 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "商品ID" -#: part/models.py:2505 +#: part/models.py:2558 msgid "Unique part ID value" msgstr "" -#: part/models.py:2508 +#: part/models.py:2561 msgid "Part Name" msgstr "" -#: part/models.py:2512 +#: part/models.py:2565 msgid "Part IPN" msgstr "" -#: part/models.py:2513 +#: part/models.py:2566 msgid "Part IPN value" msgstr "" -#: part/models.py:2516 +#: part/models.py:2569 msgid "Level" msgstr "" -#: part/models.py:2517 +#: part/models.py:2570 msgid "BOM level" msgstr "" -#: part/models.py:2586 +#: part/models.py:2639 msgid "Select parent part" msgstr "" -#: part/models.py:2594 +#: part/models.py:2647 msgid "Sub part" msgstr "" -#: part/models.py:2595 +#: part/models.py:2648 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2601 +#: part/models.py:2654 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2603 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:874 templates/js/translated/bom.js:999 +#: part/models.py:2656 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997 #: templates/js/translated/table_filters.js:100 msgid "Optional" msgstr "可选项" -#: part/models.py:2603 +#: part/models.py:2656 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2606 part/templates/part/upload_bom.html:55 +#: part/models.py:2659 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2607 +#: part/models.py:2660 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2610 +#: part/models.py:2663 msgid "BOM item reference" msgstr "" -#: part/models.py:2613 +#: part/models.py:2666 msgid "BOM item notes" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "Checksum" msgstr "" -#: part/models.py:2615 +#: part/models.py:2668 msgid "BOM line checksum" msgstr "" -#: part/models.py:2619 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:1016 +#: part/models.py:2672 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1014 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:96 msgid "Inherited" msgstr "继承项" -#: part/models.py:2620 +#: part/models.py:2673 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2625 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:1008 +#: part/models.py:2678 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:1006 msgid "Allow Variants" msgstr "" -#: part/models.py:2626 +#: part/models.py:2679 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2704 stock/models.py:461 +#: part/models.py:2757 stock/models.py:468 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2713 part/models.py:2715 +#: part/models.py:2766 part/models.py:2768 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2820 +#: part/models.py:2873 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2841 +#: part/models.py:2894 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2854 +#: part/models.py:2907 msgid "Parent BOM item" msgstr "" -#: part/models.py:2862 +#: part/models.py:2915 msgid "Substitute part" msgstr "" -#: part/models.py:2877 +#: part/models.py:2930 msgid "Part 1" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Part 2" msgstr "" -#: part/models.py:2881 +#: part/models.py:2934 msgid "Select Related Part" msgstr "" -#: part/models.py:2899 +#: part/models.py:2952 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2903 +#: part/models.py:2956 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:152 part/serializers.py:183 stock/serializers.py:181 +#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:815 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:820 +#: part/serializers.py:823 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:824 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:826 +#: part/serializers.py:829 msgid "Include Inherited" msgstr "" -#: part/serializers.py:827 +#: part/serializers.py:830 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:832 +#: part/serializers.py:835 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:833 +#: part/serializers.py:836 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:841 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:839 +#: part/serializers.py:842 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:879 +#: part/serializers.py:882 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:880 +#: part/serializers.py:883 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:910 +#: part/serializers.py:913 msgid "No part column specified" msgstr "" -#: part/serializers.py:953 +#: part/serializers.py:956 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:959 msgid "No matching part found" msgstr "" -#: part/serializers.py:959 +#: part/serializers.py:962 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:968 +#: part/serializers.py:971 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:976 +#: part/serializers.py:979 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:997 +#: part/serializers.py:1000 msgid "At least one BOM item is required" msgstr "" @@ -4837,7 +4889,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:264 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:269 msgid "BOM actions" msgstr "" @@ -4845,101 +4897,101 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/category.html:28 part/templates/part/category.html:32 +#: part/templates/part/category.html:34 part/templates/part/category.html:38 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:36 +#: part/templates/part/category.html:42 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:42 +#: part/templates/part/category.html:48 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:47 +#: part/templates/part/category.html:53 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:54 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:52 +#: part/templates/part/category.html:58 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:53 +#: part/templates/part/category.html:59 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:67 msgid "Create new part category" msgstr "新建商品类别" -#: part/templates/part/category.html:62 +#: part/templates/part/category.html:68 msgid "New Category" msgstr "" -#: part/templates/part/category.html:80 part/templates/part/category.html:93 +#: part/templates/part/category.html:86 part/templates/part/category.html:99 msgid "Category Path" msgstr "类别路径" -#: part/templates/part/category.html:94 +#: part/templates/part/category.html:100 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:222 +#: part/templates/part/category.html:120 part/templates/part/category.html:228 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "子类别" -#: part/templates/part/category.html:119 +#: part/templates/part/category.html:125 msgid "Parts (Including subcategories)" msgstr "商品 (包括子类别)" -#: part/templates/part/category.html:157 +#: part/templates/part/category.html:163 msgid "Create new part" msgstr "新建商品" -#: part/templates/part/category.html:158 templates/js/translated/bom.js:367 +#: part/templates/part/category.html:164 templates/js/translated/bom.js:367 msgid "New Part" msgstr "新商品" -#: part/templates/part/category.html:168 part/templates/part/detail.html:363 -#: part/templates/part/detail.html:394 +#: part/templates/part/category.html:174 part/templates/part/detail.html:368 +#: part/templates/part/detail.html:399 msgid "Options" msgstr "选项" -#: part/templates/part/category.html:172 +#: part/templates/part/category.html:178 msgid "Set category" msgstr "设置类别" -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:179 msgid "Set Category" msgstr "设置类别" -#: part/templates/part/category.html:180 part/templates/part/category.html:181 +#: part/templates/part/category.html:186 part/templates/part/category.html:187 msgid "Print Labels" msgstr "打印标签" -#: part/templates/part/category.html:206 +#: part/templates/part/category.html:212 msgid "Part Parameters" msgstr "商品参数" -#: part/templates/part/category.html:320 +#: part/templates/part/category.html:327 msgid "Create Part Category" msgstr "创建商品类别" -#: part/templates/part/category.html:340 +#: part/templates/part/category.html:347 msgid "Create Part" msgstr "创建商品" -#: part/templates/part/category.html:343 +#: part/templates/part/category.html:350 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:344 +#: part/templates/part/category.html:351 msgid "Part created successfully" msgstr "" @@ -4947,7 +4999,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379 msgid "Duplicate Part" msgstr "复制部件" @@ -4975,138 +5027,146 @@ msgstr "" msgid "Part Stock" msgstr "商品库存" -#: part/templates/part/detail.html:54 -msgid "Part Test Templates" +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560 +msgid "Refresh" msgstr "" #: part/templates/part/detail.html:59 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:64 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:116 stock/templates/stock/item.html:53 +#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:138 +#: part/templates/part/detail.html:143 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:158 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:157 +#: part/templates/part/detail.html:162 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:158 +#: part/templates/part/detail.html:163 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:185 +#: part/templates/part/detail.html:190 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:222 part/templates/part/part_sidebar.html:54 +#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:226 part/templates/part/detail.html:227 +#: part/templates/part/detail.html:231 part/templates/part/detail.html:232 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:247 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:252 +#: part/templates/part/detail.html:257 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:256 templates/js/translated/bom.js:284 +#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:263 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:268 +#: part/templates/part/detail.html:273 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:269 templates/js/translated/part.js:274 +#: part/templates/part/detail.html:274 templates/js/translated/part.js:274 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:270 +#: part/templates/part/detail.html:275 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:275 +#: part/templates/part/detail.html:280 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:281 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:289 +#: part/templates/part/detail.html:294 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:307 +#: part/templates/part/detail.html:312 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:334 stock/templates/stock/item.html:38 +#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:350 +#: part/templates/part/detail.html:355 msgid "Part Suppliers" msgstr "商品供应商" -#: part/templates/part/detail.html:380 +#: part/templates/part/detail.html:385 msgid "Part Manufacturers" msgstr "商品制造商" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:401 msgid "Delete manufacturer parts" msgstr "删除制造商商品" -#: part/templates/part/detail.html:612 +#: part/templates/part/detail.html:626 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:670 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:678 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:756 +#: part/templates/part/detail.html:770 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:900 +#: part/templates/part/detail.html:914 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:912 +#: part/templates/part/detail.html:926 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:924 +#: part/templates/part/detail.html:938 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1013 +#: part/templates/part/detail.html:1027 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5169,19 +5229,19 @@ msgstr "" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:43 +#: stock/templates/stock/location.html:48 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:45 templates/qr_button.html:1 +#: stock/templates/stock/location.html:50 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:63 -#: stock/templates/stock/location.html:47 +#: stock/templates/stock/location.html:52 msgid "Print Label" msgstr "打印标签" @@ -5190,8 +5250,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:60 -#: stock/templates/stock/item_base.html:116 -#: stock/templates/stock/location.html:56 +#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/location.html:61 msgid "Stock actions" msgstr "" @@ -5252,7 +5312,7 @@ msgstr "商品是虚拟的(不是实体零件)" #: templates/js/translated/company.js:624 #: templates/js/translated/company.js:884 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/part.js:650 templates/js/translated/part.js:727 +#: templates/js/translated/part.js:654 templates/js/translated/part.js:731 msgid "Inactive" msgstr "" @@ -5273,22 +5333,22 @@ msgid "In Stock" msgstr "" #: part/templates/part/part_base.html:215 -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:379 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:224 -#: stock/templates/stock/item_base.html:377 +#: stock/templates/stock/item_base.html:372 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/part.js:589 -#: templates/js/translated/part.js:609 templates/js/translated/part.js:1302 -#: templates/js/translated/part.js:1474 templates/js/translated/part.js:1490 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593 +#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320 +#: templates/js/translated/part.js:1510 msgid "Building" msgstr "" @@ -5301,7 +5361,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:320 -#: stock/templates/stock/item_base.html:333 +#: stock/templates/stock/item_base.html:328 msgid "Search for serial number" msgstr "" @@ -5340,7 +5400,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:989 msgid "No supplier pricing available" msgstr "" @@ -5375,6 +5435,18 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "此商品无价格信息可用。" +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:53 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468 +msgid "Date" +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + #: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" @@ -5423,7 +5495,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:160 templates/js/translated/bom.js:985 +#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983 msgid "Supplier Cost" msgstr "" @@ -5461,8 +5533,8 @@ msgstr "" msgid "No sale pice history available for this part." msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:612 -#: templates/js/translated/part.js:1290 templates/js/translated/part.js:1494 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616 +#: templates/js/translated/part.js:1308 msgid "No Stock" msgstr "" @@ -5516,11 +5588,11 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:157 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:202 +#: part/templatetags/inventree_extras.py:229 #, python-brace-format msgid "{title} v{version}" msgstr "" @@ -5627,51 +5699,55 @@ msgstr "" msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/models.py:32 +#: plugin/models.py:33 msgid "Plugin Metadata" msgstr "" -#: plugin/models.py:33 +#: plugin/models.py:34 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: plugin/models.py:79 +#: plugin/models.py:80 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:80 +#: plugin/models.py:81 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:85 +#: plugin/models.py:86 msgid "Key" msgstr "" -#: plugin/models.py:86 +#: plugin/models.py:87 msgid "Key of plugin" msgstr "" -#: plugin/models.py:94 +#: plugin/models.py:95 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:100 +#: plugin/models.py:101 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:168 +#: plugin/models.py:158 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:186 msgid "Plugin" msgstr "" -#: plugin/models.py:231 +#: plugin/models.py:249 msgid "Method" msgstr "" -#: plugin/plugin.py:228 +#: plugin/plugin.py:251 msgid "No author found" msgstr "" -#: plugin/plugin.py:240 +#: plugin/plugin.py:263 msgid "No date found" msgstr "" @@ -5743,12 +5819,12 @@ msgstr "" msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" -#: report/api.py:216 report/api.py:257 +#: report/api.py:216 report/api.py:252 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:360 +#: report/api.py:355 msgid "Test report" msgstr "" @@ -5849,12 +5925,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:641 stock/templates/stock/item_base.html:322 -#: templates/js/translated/build.js:424 templates/js/translated/build.js:576 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:1673 +#: stock/models.py:648 stock/templates/stock/item_base.html:317 +#: templates/js/translated/build.js:456 templates/js/translated/build.js:608 +#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706 #: templates/js/translated/model_renderers.js:118 -#: templates/js/translated/order.js:118 templates/js/translated/order.js:3297 -#: templates/js/translated/order.js:3384 templates/js/translated/stock.js:486 +#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403 +#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490 msgid "Serial Number" msgstr "序列号" @@ -5863,22 +5939,15 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2076 +#: stock/models.py:2083 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2082 +#: stock/models.py:2089 msgid "Result" msgstr "" -#: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:51 -#: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459 -msgid "Date" -msgstr "" - #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" @@ -5893,8 +5962,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776 -#: templates/js/translated/stock.js:2708 +#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780 +#: templates/js/translated/stock.js:2717 msgid "Serial" msgstr "" @@ -5910,310 +5979,310 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:82 stock/models.py:732 -#: stock/templates/stock/item_base.html:252 +#: stock/models.py:89 stock/models.py:739 +#: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:83 stock/models.py:733 +#: stock/models.py:90 stock/models.py:740 msgid "Select Owner" msgstr "" -#: stock/models.py:435 +#: stock/models.py:442 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:467 stock/serializers.py:95 +#: stock/models.py:474 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:484 +#: stock/models.py:491 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:494 stock/models.py:503 +#: stock/models.py:501 stock/models.py:510 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:495 +#: stock/models.py:502 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:517 +#: stock/models.py:524 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:523 +#: stock/models.py:530 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:537 +#: stock/models.py:544 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:583 +#: stock/models.py:590 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:593 +#: stock/models.py:600 msgid "Base part" msgstr "" -#: stock/models.py:601 +#: stock/models.py:608 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:608 stock/templates/stock/location.html:17 +#: stock/models.py:615 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "仓储地点" -#: stock/models.py:611 +#: stock/models.py:618 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:618 +#: stock/models.py:625 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:624 stock/templates/stock/item_base.html:361 +#: stock/models.py:631 stock/templates/stock/item_base.html:356 msgid "Installed In" msgstr "" -#: stock/models.py:627 +#: stock/models.py:634 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:643 +#: stock/models.py:650 msgid "Serial number for this item" msgstr "" -#: stock/models.py:657 +#: stock/models.py:664 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:662 +#: stock/models.py:669 msgid "Stock Quantity" msgstr "" -#: stock/models.py:671 +#: stock/models.py:678 msgid "Source Build" msgstr "" -#: stock/models.py:673 +#: stock/models.py:680 msgid "Build for this stock item" msgstr "" -#: stock/models.py:684 +#: stock/models.py:691 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:687 +#: stock/models.py:694 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:693 +#: stock/models.py:700 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:699 stock/templates/stock/item_base.html:429 -#: templates/js/translated/stock.js:1879 +#: stock/models.py:706 stock/templates/stock/item_base.html:424 +#: templates/js/translated/stock.js:1883 msgid "Expiry Date" msgstr "" -#: stock/models.py:700 +#: stock/models.py:707 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete on deplete" msgstr "" -#: stock/models.py:713 +#: stock/models.py:720 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:720 stock/templates/stock/item.html:132 +#: stock/models.py:727 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:728 +#: stock/models.py:735 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:756 +#: stock/models.py:763 msgid "Converted to part" msgstr "" -#: stock/models.py:1235 +#: stock/models.py:1242 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1241 +#: stock/models.py:1248 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1247 +#: stock/models.py:1254 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1257 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1260 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1260 +#: stock/models.py:1267 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1330 +#: stock/models.py:1337 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1333 +#: stock/models.py:1340 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1336 +#: stock/models.py:1343 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1339 +#: stock/models.py:1346 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1342 +#: stock/models.py:1349 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1345 +#: stock/models.py:1352 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1352 stock/serializers.py:959 +#: stock/models.py:1359 stock/serializers.py:959 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1356 +#: stock/models.py:1363 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1367 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1371 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1533 +#: stock/models.py:1540 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1994 +#: stock/models.py:2001 msgid "Entry notes" msgstr "" -#: stock/models.py:2052 +#: stock/models.py:2059 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2058 +#: stock/models.py:2065 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2077 +#: stock/models.py:2084 msgid "Test name" msgstr "" -#: stock/models.py:2083 +#: stock/models.py:2090 msgid "Test result" msgstr "" -#: stock/models.py:2089 +#: stock/models.py:2096 msgid "Test output value" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2103 msgid "Test result attachment" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2109 msgid "Test notes" msgstr "" -#: stock/serializers.py:73 +#: stock/serializers.py:71 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:174 +#: stock/serializers.py:172 msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:294 +#: stock/serializers.py:292 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:304 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:312 +#: stock/serializers.py:310 msgid "Enter serial numbers for new items" msgstr "输入新项目的序列号" -#: stock/serializers.py:323 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 msgid "Destination stock location" msgstr "目标库存位置" -#: stock/serializers.py:330 +#: stock/serializers.py:328 msgid "Optional note field" msgstr "" -#: stock/serializers.py:340 +#: stock/serializers.py:338 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:357 +#: stock/serializers.py:355 msgid "Serial numbers already exist" msgstr "序列号已存在" -#: stock/serializers.py:397 +#: stock/serializers.py:395 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:410 +#: stock/serializers.py:408 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:417 +#: stock/serializers.py:415 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:454 +#: stock/serializers.py:452 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:459 stock/serializers.py:540 +#: stock/serializers.py:457 stock/serializers.py:538 msgid "Add transaction note (optional)" msgstr "添加交易备注 (可选)" -#: stock/serializers.py:493 +#: stock/serializers.py:491 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:504 +#: stock/serializers.py:502 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:535 +#: stock/serializers.py:533 msgid "Destination location for returned item" msgstr "" @@ -6310,7 +6379,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861 msgid "Install Stock Item" msgstr "" @@ -6318,7 +6387,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1518 +#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522 msgid "Add Test Result" msgstr "" @@ -6349,195 +6418,195 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:80 -#: stock/templates/stock/location.html:63 templates/stock_table.html:47 +#: stock/templates/stock/location.html:68 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:83 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:86 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:86 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/location.html:69 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:74 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:96 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:99 +#: stock/templates/stock/item_base.html:95 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:102 +#: stock/templates/stock/item_base.html:98 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:121 +#: stock/templates/stock/item_base.html:116 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:124 +#: stock/templates/stock/item_base.html:119 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:126 +#: stock/templates/stock/item_base.html:121 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:129 +#: stock/templates/stock/item_base.html:124 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:158 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:198 +#: stock/templates/stock/item_base.html:193 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:211 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:256 +#: stock/templates/stock/item_base.html:251 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:257 -#: stock/templates/stock/location.html:127 +#: stock/templates/stock/item_base.html:252 +#: stock/templates/stock/location.html:132 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:265 msgid "This stock item is in production and cannot be edited." msgstr "此库存项目正在生产中,无法编辑。" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:279 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:287 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:300 +#: stock/templates/stock/item_base.html:295 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:306 +#: stock/templates/stock/item_base.html:301 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:337 +#: stock/templates/stock/item_base.html:332 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:350 +#: stock/templates/stock/item_base.html:345 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:394 -#: templates/js/translated/build.js:1695 +#: stock/templates/stock/item_base.html:389 +#: templates/js/translated/build.js:1729 msgid "No location set" msgstr "未设置仓储地点" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:433 +#: stock/templates/stock/item_base.html:428 #: templates/js/translated/table_filters.js:269 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:435 +#: stock/templates/stock/item_base.html:430 #: templates/js/translated/table_filters.js:275 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:442 -#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1895 +#: stock/templates/stock/item_base.html:437 +#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:447 +#: stock/templates/stock/item_base.html:442 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:451 +#: stock/templates/stock/item_base.html:446 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:521 +#: stock/templates/stock/item_base.html:516 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:594 +#: stock/templates/stock/item_base.html:589 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:597 +#: stock/templates/stock/item_base.html:592 msgid "Warning" msgstr "警告" -#: stock/templates/stock/item_base.html:598 +#: stock/templates/stock/item_base.html:593 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:601 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:664 +#: stock/templates/stock/item_base.html:629 msgid "Return to Stock" msgstr "" @@ -6549,59 +6618,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:38 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:49 +#: stock/templates/stock/location.html:54 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:77 +#: stock/templates/stock/location.html:82 msgid "Location actions" msgstr "仓储地操作" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:84 msgid "Edit location" msgstr "编辑仓储地" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:86 msgid "Delete location" msgstr "删除仓储地" -#: stock/templates/stock/location.html:90 +#: stock/templates/stock/location.html:95 msgid "Create new stock location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:96 msgid "New Location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:109 -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:114 +#: stock/templates/stock/location.html:120 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/location.html:121 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:122 +#: stock/templates/stock/location.html:127 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:126 +#: stock/templates/stock/location.html:131 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。" -#: stock/templates/stock/location.html:142 -#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:147 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:156 templates/InvenTree/search.html:165 -#: templates/js/translated/search.js:238 users/models.py:39 +#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167 +#: templates/js/translated/search.js:240 users/models.py:39 msgid "Stock Locations" msgstr "仓储地点" @@ -6872,15 +6941,15 @@ msgstr "" msgid "Part Settings" msgstr "商品设置" -#: templates/InvenTree/settings/part.html:44 +#: templates/InvenTree/settings/part.html:46 msgid "Part Import" msgstr "商品导入" -#: templates/InvenTree/settings/part.html:48 +#: templates/InvenTree/settings/part.html:50 msgid "Import Part" msgstr "导入商品" -#: templates/InvenTree/settings/part.html:62 +#: templates/InvenTree/settings/part.html:64 msgid "Part Parameter Templates" msgstr "商品参数模板" @@ -6892,47 +6961,47 @@ 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:34 +#: templates/InvenTree/settings/plugin.html:36 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:39 +#: templates/InvenTree/settings/plugin.html:41 #: templates/js/translated/plugin.js:16 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:137 +#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137 #: users/models.py:36 msgid "Admin" msgstr "管理员" -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin.html:54 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:74 +#: templates/InvenTree/settings/plugin.html:76 msgid "Sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:99 +#: templates/InvenTree/settings/plugin.html:101 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:122 +#: templates/InvenTree/settings/plugin.html:124 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:131 +#: templates/InvenTree/settings/plugin.html:133 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:133 +#: templates/InvenTree/settings/plugin.html:135 #: templates/js/translated/notification.js:75 msgid "Message" msgstr "" @@ -6996,11 +7065,11 @@ msgstr "" msgid "Commit Message" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/InvenTree/settings/plugin_settings.html:120 msgid "Sign Status" msgstr "" -#: templates/InvenTree/settings/plugin_settings.html:122 +#: templates/InvenTree/settings/plugin_settings.html:125 msgid "Sign Key" msgstr "" @@ -7042,12 +7111,12 @@ msgid "No category parameter templates found" msgstr "未找到类别参数模板" #: templates/InvenTree/settings/settings.html:239 -#: templates/InvenTree/settings/settings.html:357 +#: templates/InvenTree/settings/settings.html:364 msgid "Edit Template" msgstr "编辑模板" #: templates/InvenTree/settings/settings.html:240 -#: templates/InvenTree/settings/settings.html:358 +#: templates/InvenTree/settings/settings.html:365 msgid "Delete Template" msgstr "删除模板" @@ -7068,19 +7137,19 @@ msgstr "未找到商品参数模板" msgid "ID" msgstr "" -#: templates/InvenTree/settings/settings.html:375 +#: templates/InvenTree/settings/settings.html:383 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:393 +#: templates/InvenTree/settings/settings.html:402 msgid "Edit Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings.html:407 +#: templates/InvenTree/settings/settings.html:416 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/InvenTree/settings/settings.html:415 +#: templates/InvenTree/settings/settings.html:424 msgid "Delete Part Parameter Template" msgstr "" @@ -7149,7 +7218,7 @@ msgid "Change Password" msgstr "更改密码" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:28 templates/notes_buttons.html:3 +#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "编辑" @@ -7659,7 +7728,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1483 +#: templates/js/translated/bom.js:1481 msgid "Required Quantity" msgstr "" @@ -7673,6 +7742,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:19 +#: templates/js/translated/part.js:2522 msgid "Minimum Quantity" msgstr "" @@ -7825,7 +7895,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1050 +#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054 msgid "Remove stock item" msgstr "" @@ -7874,10 +7944,10 @@ msgstr "" msgid "Row Data" msgstr "" -#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:622 +#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620 #: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601 #: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003 -#: templates/js/translated/order.js:979 templates/modals.html:15 +#: templates/js/translated/order.js:1085 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -7887,12 +7957,12 @@ msgid "Download BOM Template" msgstr "" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 -#: templates/js/translated/order.js:760 templates/js/translated/tables.js:145 +#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145 msgid "Format" msgstr "" #: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288 -#: templates/js/translated/order.js:761 +#: templates/js/translated/order.js:867 msgid "Select file format" msgstr "" @@ -7948,390 +8018,390 @@ msgstr "在导出 BOM 中包含供应商数据" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:567 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:578 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:584 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:623 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:686 +#: templates/js/translated/bom.js:684 msgid "All selected BOM items will be deleted" msgstr "" -#: templates/js/translated/bom.js:702 +#: templates/js/translated/bom.js:700 msgid "Delete selected BOM items?" msgstr "" -#: templates/js/translated/bom.js:821 +#: templates/js/translated/bom.js:819 msgid "Load BOM for subassembly" msgstr "" -#: templates/js/translated/bom.js:831 +#: templates/js/translated/bom.js:829 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:835 templates/js/translated/build.js:1771 +#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:929 templates/js/translated/build.js:1816 -#: templates/js/translated/order.js:3632 +#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857 +#: templates/js/translated/order.js:3738 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1820 +#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1822 -#: templates/js/translated/part.js:759 +#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863 +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:938 templates/js/translated/build.js:1824 +#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:956 +#: templates/js/translated/bom.js:954 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:971 +#: templates/js/translated/bom.js:969 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:978 +#: templates/js/translated/bom.js:976 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:1027 templates/js/translated/bom.js:1147 +#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:1054 +#: templates/js/translated/bom.js:1052 msgid "Including On Order" msgstr "" -#: templates/js/translated/bom.js:1118 +#: templates/js/translated/bom.js:1116 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:1120 +#: templates/js/translated/bom.js:1118 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1120 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:1124 templates/js/translated/bom.js:1286 +#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:1124 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1222 templates/js/translated/build.js:1617 +#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1466 templates/js/translated/build.js:1755 +#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1488 +#: templates/js/translated/bom.js:1486 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:86 +#: templates/js/translated/build.js:89 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:120 +#: templates/js/translated/build.js:132 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:133 +#: templates/js/translated/build.js:165 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:142 +#: templates/js/translated/build.js:174 msgid "Are you sure you wish to cancel this build?" msgstr "是否确定取消生产?" -#: templates/js/translated/build.js:148 +#: templates/js/translated/build.js:180 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:155 +#: templates/js/translated/build.js:187 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:185 +#: templates/js/translated/build.js:217 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:190 +#: templates/js/translated/build.js:222 msgid "Build Order is incomplete" msgstr "生产订单未完成" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:254 msgid "Complete Build Order" msgstr "生产订单完成" -#: templates/js/translated/build.js:263 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:210 +#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:214 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:265 templates/js/translated/stock.js:94 -#: templates/js/translated/stock.js:212 +#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94 +#: templates/js/translated/stock.js:216 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:274 +#: templates/js/translated/build.js:306 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:275 +#: templates/js/translated/build.js:307 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:283 +#: templates/js/translated/build.js:315 msgid "Trackable parts can have serial numbers specified" msgstr "可追踪商品可以指定序列号" -#: templates/js/translated/build.js:284 +#: templates/js/translated/build.js:316 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:291 +#: templates/js/translated/build.js:323 msgid "Create Build Output" msgstr "创建创建生产产出" -#: templates/js/translated/build.js:322 +#: templates/js/translated/build.js:354 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:333 +#: templates/js/translated/build.js:365 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:342 +#: templates/js/translated/build.js:374 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:350 +#: templates/js/translated/build.js:382 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:373 +#: templates/js/translated/build.js:405 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:391 +#: templates/js/translated/build.js:423 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:411 templates/js/translated/build.js:563 +#: templates/js/translated/build.js:443 templates/js/translated/build.js:595 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:412 templates/js/translated/build.js:564 +#: templates/js/translated/build.js:444 templates/js/translated/build.js:596 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:466 templates/js/translated/build.js:618 +#: templates/js/translated/build.js:498 templates/js/translated/build.js:650 msgid "Output" msgstr "" -#: templates/js/translated/build.js:484 +#: templates/js/translated/build.js:516 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:663 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:720 +#: templates/js/translated/build.js:753 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:757 +#: templates/js/translated/build.js:790 msgid "Location not specified" msgstr "未指定仓储地点" -#: templates/js/translated/build.js:1136 +#: templates/js/translated/build.js:1169 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1205 +#: templates/js/translated/build.js:1238 msgid "Allocated Stock" msgstr "" -#: templates/js/translated/build.js:1212 +#: templates/js/translated/build.js:1245 msgid "No tracked BOM items for this build" msgstr "" -#: templates/js/translated/build.js:1234 +#: templates/js/translated/build.js:1267 msgid "Completed Tests" msgstr "" -#: templates/js/translated/build.js:1239 +#: templates/js/translated/build.js:1272 msgid "No required tests for this build" msgstr "" -#: templates/js/translated/build.js:1712 templates/js/translated/build.js:2656 -#: templates/js/translated/order.js:3332 +#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697 +#: templates/js/translated/order.js:3438 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/build.js:2657 -#: templates/js/translated/order.js:3333 +#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698 +#: templates/js/translated/order.js:3439 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1732 +#: templates/js/translated/build.js:1766 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1742 +#: templates/js/translated/build.js:1776 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1767 +#: templates/js/translated/build.js:1801 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1784 +#: templates/js/translated/build.js:1818 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1810 templates/js/translated/order.js:3639 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745 msgid "Insufficient stock available" msgstr "" -#: templates/js/translated/build.js:1812 templates/js/translated/order.js:3637 +#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:1841 templates/js/translated/build.js:2086 -#: templates/js/translated/build.js:2652 templates/js/translated/order.js:3651 +#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127 +#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1889 templates/js/translated/order.js:3731 +#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1893 templates/stock_table.html:50 +#: templates/js/translated/build.js:1934 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1896 templates/js/translated/order.js:3724 +#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1935 templates/js/translated/label.js:172 -#: templates/js/translated/order.js:807 templates/js/translated/order.js:2859 +#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965 #: templates/js/translated/report.js:225 msgid "Select Parts" msgstr "选择商品" -#: templates/js/translated/build.js:1936 templates/js/translated/order.js:2860 +#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1985 templates/js/translated/order.js:2808 +#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:2059 +#: templates/js/translated/build.js:2100 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2101 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:2074 templates/js/translated/order.js:2874 +#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:2102 +#: templates/js/translated/build.js:2143 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:2113 templates/js/translated/order.js:2971 +#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2185 templates/js/translated/order.js:3048 +#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2282 +#: templates/js/translated/build.js:2323 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2283 +#: templates/js/translated/build.js:2324 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2285 +#: templates/js/translated/build.js:2326 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2286 +#: templates/js/translated/build.js:2327 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2328 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:2308 +#: templates/js/translated/build.js:2349 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2414 +#: templates/js/translated/build.js:2455 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383 -#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682 -#: templates/js/translated/stock.js:2382 +#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401 +#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686 +#: templates/js/translated/stock.js:2386 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2463 +#: templates/js/translated/build.js:2504 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2491 +#: templates/js/translated/build.js:2532 msgid "Progress" msgstr "" -#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638 +#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647 msgid "No user information" msgstr "没有用户信息" -#: templates/js/translated/build.js:2633 +#: templates/js/translated/build.js:2674 msgid "No parts allocated for" msgstr "" @@ -8347,11 +8417,11 @@ msgstr "添加制造商商品" msgid "Edit Manufacturer Part" msgstr "编辑制造商商品" -#: templates/js/translated/company.js:167 templates/js/translated/order.js:509 +#: templates/js/translated/company.js:167 templates/js/translated/order.js:511 msgid "Add Supplier" msgstr "添加供应商" -#: templates/js/translated/company.js:195 templates/js/translated/order.js:628 +#: templates/js/translated/company.js:195 templates/js/translated/order.js:734 msgid "Add Supplier Part" msgstr "添加供应商商品" @@ -8400,34 +8470,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:616 -#: templates/js/translated/company.js:876 templates/js/translated/part.js:634 -#: templates/js/translated/part.js:719 +#: templates/js/translated/company.js:876 templates/js/translated/part.js:638 +#: templates/js/translated/part.js:723 msgid "Template part" msgstr "" #: templates/js/translated/company.js:620 -#: templates/js/translated/company.js:880 templates/js/translated/part.js:638 -#: templates/js/translated/part.js:723 +#: templates/js/translated/company.js:880 templates/js/translated/part.js:642 +#: templates/js/translated/part.js:727 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:748 templates/js/translated/part.js:826 +#: templates/js/translated/company.js:748 templates/js/translated/part.js:830 msgid "No parameters found" msgstr "无指定参数" -#: templates/js/translated/company.js:785 templates/js/translated/part.js:868 +#: templates/js/translated/company.js:785 templates/js/translated/part.js:872 msgid "Edit parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:786 templates/js/translated/part.js:869 +#: templates/js/translated/company.js:786 templates/js/translated/part.js:873 msgid "Delete parameter" msgstr "删除参数" -#: templates/js/translated/company.js:805 templates/js/translated/part.js:886 +#: templates/js/translated/company.js:805 templates/js/translated/part.js:890 msgid "Edit Parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:816 templates/js/translated/part.js:898 +#: templates/js/translated/company.js:816 templates/js/translated/part.js:902 msgid "Delete Parameter" msgstr "删除参数" @@ -8506,44 +8576,44 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1264 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1697 +#: templates/js/translated/forms.js:1702 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1912 templates/search.html:29 +#: templates/js/translated/forms.js:1917 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2165 +#: templates/js/translated/forms.js:2170 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2631 +#: templates/js/translated/forms.js:2636 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2643 +#: templates/js/translated/forms.js:2648 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:23 +#: templates/js/translated/helpers.js:24 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:320 +#: templates/js/translated/helpers.js:321 msgid "Notes updated" msgstr "" @@ -8552,7 +8622,7 @@ msgid "Labels sent to printer" msgstr "" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1074 +#: templates/js/translated/stock.js:1078 msgid "Select Stock Items" msgstr "选择库存项" @@ -8722,381 +8792,409 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:94 +#: templates/js/translated/order.js:96 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/order.js:99 +#: templates/js/translated/order.js:101 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/order.js:139 +#: templates/js/translated/order.js:141 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/order.js:159 +#: templates/js/translated/order.js:161 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/order.js:215 +#: templates/js/translated/order.js:217 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:221 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/order.js:251 +#: templates/js/translated/order.js:253 msgid "Skip" msgstr "" -#: templates/js/translated/order.js:281 +#: templates/js/translated/order.js:283 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/order.js:287 +#: templates/js/translated/order.js:289 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/order.js:293 +#: templates/js/translated/order.js:295 msgid "All line items have been received" msgstr "" -#: templates/js/translated/order.js:298 +#: templates/js/translated/order.js:300 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/order.js:299 +#: templates/js/translated/order.js:301 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:322 +#: templates/js/translated/order.js:324 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/order.js:327 +#: templates/js/translated/order.js:329 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:335 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/order.js:356 +#: templates/js/translated/order.js:358 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/order.js:361 +#: templates/js/translated/order.js:363 msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: templates/js/translated/order.js:383 +#: templates/js/translated/order.js:385 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/order.js:388 +#: templates/js/translated/order.js:390 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/order.js:442 +#: templates/js/translated/order.js:444 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/order.js:467 +#: templates/js/translated/order.js:469 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:492 +#: templates/js/translated/order.js:494 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:757 +#: templates/js/translated/order.js:555 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/order.js:562 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/order.js:563 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:570 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/order.js:571 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/order.js:605 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/order.js:863 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:808 +#: templates/js/translated/order.js:914 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/order.js:833 +#: templates/js/translated/order.js:939 msgid "Quantity to order" msgstr "" -#: templates/js/translated/order.js:842 +#: templates/js/translated/order.js:948 msgid "New supplier part" msgstr "" -#: templates/js/translated/order.js:860 +#: templates/js/translated/order.js:966 msgid "New purchase order" msgstr "" -#: templates/js/translated/order.js:893 +#: templates/js/translated/order.js:999 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/order.js:1002 +#: templates/js/translated/order.js:1108 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1123 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/order.js:1194 +#: templates/js/translated/order.js:1300 msgid "Select Line Items" msgstr "" -#: templates/js/translated/order.js:1195 +#: templates/js/translated/order.js:1301 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1314 +#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420 msgid "Add batch code" msgstr "" -#: templates/js/translated/order.js:1221 templates/js/translated/order.js:1325 +#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/order.js:1233 +#: templates/js/translated/order.js:1339 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:1297 templates/js/translated/stock.js:2140 +#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144 msgid "Stock Status" msgstr "" -#: templates/js/translated/order.js:1388 +#: templates/js/translated/order.js:1494 msgid "Order Code" msgstr "订单编码" -#: templates/js/translated/order.js:1389 +#: templates/js/translated/order.js:1495 msgid "Ordered" msgstr "" -#: templates/js/translated/order.js:1391 +#: templates/js/translated/order.js:1497 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/order.js:1410 +#: templates/js/translated/order.js:1516 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/order.js:1411 +#: templates/js/translated/order.js:1517 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:1672 templates/js/translated/part.js:939 +#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:1699 templates/js/translated/order.js:2503 +#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:1749 templates/js/translated/order.js:2568 -#: templates/js/translated/order.js:2709 +#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674 +#: templates/js/translated/order.js:2815 msgid "Items" msgstr "" -#: templates/js/translated/order.js:1847 templates/js/translated/order.js:3783 +#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/order.js:1864 templates/js/translated/order.js:3805 +#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:1877 templates/js/translated/order.js:3816 +#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:1920 +#: templates/js/translated/order.js:2026 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:3517 +#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623 msgid "Total" msgstr "" -#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203 -#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050 -#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479 +#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309 +#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156 +#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753 msgid "Unit Price" msgstr "单价" -#: templates/js/translated/order.js:2016 templates/js/translated/order.js:2219 -#: templates/js/translated/order.js:3558 templates/js/translated/order.js:4066 +#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325 +#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:2057 templates/js/translated/order.js:3600 -#: templates/js/translated/part.js:1046 +#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706 +#: templates/js/translated/part.js:1070 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:2116 templates/js/translated/part.js:1092 +#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:2120 templates/js/translated/order.js:3737 +#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/order.js:2121 templates/js/translated/order.js:3738 +#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:2122 templates/js/translated/order.js:3742 +#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:2268 templates/js/translated/order.js:4115 +#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:2269 templates/js/translated/order.js:4116 +#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:2270 templates/js/translated/order.js:4117 +#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223 msgid "Delete line" msgstr "" -#: templates/js/translated/order.js:2300 templates/js/translated/order.js:4147 +#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:2321 templates/js/translated/order.js:4168 +#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:2332 templates/js/translated/order.js:4179 +#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:2343 +#: templates/js/translated/order.js:2449 msgid "No matching line" msgstr "" -#: templates/js/translated/order.js:2454 +#: templates/js/translated/order.js:2560 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:2517 +#: templates/js/translated/order.js:2623 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:2615 +#: templates/js/translated/order.js:2721 msgid "Edit shipment" msgstr "" -#: templates/js/translated/order.js:2618 +#: templates/js/translated/order.js:2724 msgid "Complete shipment" msgstr "" -#: templates/js/translated/order.js:2623 +#: templates/js/translated/order.js:2729 msgid "Delete shipment" msgstr "" -#: templates/js/translated/order.js:2643 +#: templates/js/translated/order.js:2749 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/order.js:2660 +#: templates/js/translated/order.js:2766 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/order.js:2694 +#: templates/js/translated/order.js:2800 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/order.js:2704 +#: templates/js/translated/order.js:2810 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/order.js:2728 +#: templates/js/translated/order.js:2834 msgid "Not shipped" msgstr "" -#: templates/js/translated/order.js:2734 +#: templates/js/translated/order.js:2840 msgid "Tracking" msgstr "" -#: templates/js/translated/order.js:2738 +#: templates/js/translated/order.js:2844 msgid "Invoice" msgstr "" -#: templates/js/translated/order.js:2907 +#: templates/js/translated/order.js:3013 msgid "Add Shipment" msgstr "" -#: templates/js/translated/order.js:2958 +#: templates/js/translated/order.js:3064 msgid "Confirm stock allocation" msgstr "确认库存分配" -#: templates/js/translated/order.js:2959 +#: templates/js/translated/order.js:3065 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/order.js:3167 +#: templates/js/translated/order.js:3273 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:3246 +#: templates/js/translated/order.js:3352 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3263 +#: templates/js/translated/order.js:3369 msgid "Confirm Delete Operation" msgstr "确认删除操作" -#: templates/js/translated/order.js:3264 +#: templates/js/translated/order.js:3370 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:3309 templates/js/translated/order.js:3398 -#: templates/js/translated/stock.js:1598 +#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504 +#: templates/js/translated/stock.js:1602 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/order.js:3317 templates/js/translated/order.js:3407 +#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:3721 +#: templates/js/translated/order.js:3827 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:3727 +#: templates/js/translated/order.js:3833 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:3734 templates/js/translated/order.js:3932 +#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:3746 +#: templates/js/translated/order.js:3852 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/order.js:3749 +#: templates/js/translated/order.js:3855 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/order.js:3831 +#: templates/js/translated/order.js:3937 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/order.js:3940 +#: templates/js/translated/order.js:4046 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:3954 +#: templates/js/translated/order.js:4060 msgid "No matching line items" msgstr "" -#: templates/js/translated/order.js:4190 +#: templates/js/translated/order.js:4296 msgid "No matching lines" msgstr "" @@ -9180,241 +9278,269 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:318 +#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:322 msgid "Edit Part Category" msgstr "编辑商品类别" -#: templates/js/translated/part.js:331 +#: templates/js/translated/part.js:335 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:333 +#: templates/js/translated/part.js:337 msgid "Any child categories will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:334 +#: templates/js/translated/part.js:338 msgid "Any parts in this category will be moved to the parent of this category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:343 msgid "Delete Part Category" msgstr "删除商品类别" -#: templates/js/translated/part.js:365 +#: templates/js/translated/part.js:369 msgid "Edit Part" msgstr "编辑商品" -#: templates/js/translated/part.js:367 +#: templates/js/translated/part.js:371 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:378 +#: templates/js/translated/part.js:382 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:430 +#: templates/js/translated/part.js:434 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:431 +#: templates/js/translated/part.js:435 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:447 +#: templates/js/translated/part.js:451 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:448 +#: templates/js/translated/part.js:452 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:449 +#: templates/js/translated/part.js:453 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:460 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:492 +#: templates/js/translated/part.js:496 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:494 +#: templates/js/translated/part.js:498 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:499 +#: templates/js/translated/part.js:503 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:501 +#: templates/js/translated/part.js:505 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:518 +#: templates/js/translated/part.js:522 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:528 +#: templates/js/translated/part.js:532 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:531 +#: templates/js/translated/part.js:535 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:556 +#: templates/js/translated/part.js:560 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:582 templates/js/translated/part.js:1466 +#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498 #: templates/js/translated/table_filters.js:468 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:592 templates/js/translated/part.js:1478 +#: templates/js/translated/part.js:596 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:626 templates/js/translated/part.js:711 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 msgid "Trackable part" msgstr "可追溯商品" -#: templates/js/translated/part.js:630 templates/js/translated/part.js:715 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:719 msgid "Virtual part" msgstr "虚拟商品" -#: templates/js/translated/part.js:642 +#: templates/js/translated/part.js:646 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:646 +#: templates/js/translated/part.js:650 msgid "Salable part" msgstr "可销售商品" -#: templates/js/translated/part.js:774 +#: templates/js/translated/part.js:778 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1162 +#: templates/js/translated/part.js:1180 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1186 +#: templates/js/translated/part.js:1204 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1253 templates/js/translated/part.js:1549 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1310 msgid "Not available" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1461 msgid "No category" msgstr "没有分类" -#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816 -#: templates/js/translated/stock.js:2343 +#: templates/js/translated/part.js:1496 +msgid "No stock" +msgstr "" + +#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840 +#: templates/js/translated/stock.js:2347 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1589 +#: templates/js/translated/part.js:1613 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1655 +#: templates/js/translated/part.js:1679 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:1660 +#: templates/js/translated/part.js:1684 msgid "Set Part Category" msgstr "设置商品类别" -#: templates/js/translated/part.js:1665 +#: templates/js/translated/part.js:1689 msgid "Select Part Category" msgstr "" -#: templates/js/translated/part.js:1678 +#: templates/js/translated/part.js:1702 msgid "Category is required" msgstr "" -#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362 +#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1938 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:1925 +#: templates/js/translated/part.js:1954 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1983 +#: templates/js/translated/part.js:2012 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296 -#: templates/js/translated/stock.js:1556 +#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1560 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:2041 +#: templates/js/translated/part.js:2070 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2092 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2077 +#: templates/js/translated/part.js:2106 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:2102 +#: templates/js/translated/part.js:2131 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:2159 +#: templates/js/translated/part.js:2188 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:2160 +#: templates/js/translated/part.js:2189 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2274 -msgid "Current Stock" +#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355 +msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:2307 +#: templates/js/translated/part.js:2357 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:2363 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:2413 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2333 +#: templates/js/translated/part.js:2419 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:2515 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2403 +#: templates/js/translated/part.js:2531 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:2576 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/part.js:2677 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2422 +#: templates/js/translated/part.js:2696 msgid "Single Price Difference" msgstr "" @@ -9488,11 +9614,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:392 +#: templates/js/translated/search.js:394 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:395 +#: templates/js/translated/search.js:397 msgid "Remove results" msgstr "" @@ -9508,376 +9634,376 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:140 +#: templates/js/translated/stock.js:144 msgid "Edit Stock Location" msgstr "编辑仓储地点" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:159 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:169 +#: templates/js/translated/stock.js:173 msgid "Are you sure you want to delete this stock location?" msgstr "确实要删除此仓储地点吗?" -#: templates/js/translated/stock.js:171 +#: templates/js/translated/stock.js:175 msgid "Any child locations will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:176 msgid "Any stock items in this location will be moved to the parent of this location" msgstr "" -#: templates/js/translated/stock.js:178 +#: templates/js/translated/stock.js:182 msgid "Delete Stock Location" msgstr "删除仓储地点" -#: templates/js/translated/stock.js:223 +#: templates/js/translated/stock.js:227 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:262 +#: templates/js/translated/stock.js:266 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:268 +#: templates/js/translated/stock.js:272 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:333 +#: templates/js/translated/stock.js:337 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:353 +#: templates/js/translated/stock.js:357 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:373 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:374 +#: templates/js/translated/stock.js:378 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:399 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:449 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:462 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:483 +#: templates/js/translated/stock.js:487 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:487 templates/js/translated/stock.js:488 +#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:504 +#: templates/js/translated/stock.js:508 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:524 +#: templates/js/translated/stock.js:528 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:533 +#: templates/js/translated/stock.js:537 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:656 +#: templates/js/translated/stock.js:660 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:657 +#: templates/js/translated/stock.js:661 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:738 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:735 +#: templates/js/translated/stock.js:739 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:737 +#: templates/js/translated/stock.js:741 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:738 +#: templates/js/translated/stock.js:742 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:828 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:825 +#: templates/js/translated/stock.js:829 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:920 +#: templates/js/translated/stock.js:924 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:921 +#: templates/js/translated/stock.js:925 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:931 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:932 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:932 +#: templates/js/translated/stock.js:936 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:933 +#: templates/js/translated/stock.js:937 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:941 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:938 users/models.py:216 +#: templates/js/translated/stock.js:942 users/models.py:216 msgid "Add" msgstr "添加" -#: templates/js/translated/stock.js:942 +#: templates/js/translated/stock.js:946 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1075 +#: templates/js/translated/stock.js:1079 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1098 +#: templates/js/translated/stock.js:1102 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:1238 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1236 +#: templates/js/translated/stock.js:1240 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1245 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1288 +#: templates/js/translated/stock.js:1292 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1291 +#: templates/js/translated/stock.js:1295 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1317 +#: templates/js/translated/stock.js:1321 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1374 +#: templates/js/translated/stock.js:1378 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1539 +#: templates/js/translated/stock.js:1543 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1561 +#: templates/js/translated/stock.js:1565 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1590 +#: templates/js/translated/stock.js:1594 msgid "In production" msgstr "正在生产" -#: templates/js/translated/stock.js:1594 +#: templates/js/translated/stock.js:1598 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1602 +#: templates/js/translated/stock.js:1606 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1608 +#: templates/js/translated/stock.js:1612 msgid "No stock location set" msgstr "未设置仓储地点" -#: templates/js/translated/stock.js:1775 +#: templates/js/translated/stock.js:1779 msgid "Stock item is in production" msgstr "库存品正在生产" -#: templates/js/translated/stock.js:1780 +#: templates/js/translated/stock.js:1784 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:1787 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1790 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1788 +#: templates/js/translated/stock.js:1792 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1790 +#: templates/js/translated/stock.js:1794 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1793 +#: templates/js/translated/stock.js:1797 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1799 +#: templates/js/translated/stock.js:1803 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1806 +#: templates/js/translated/stock.js:1810 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1808 +#: templates/js/translated/stock.js:1812 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1814 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1814 +#: templates/js/translated/stock.js:1818 #: templates/js/translated/table_filters.js:196 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1869 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1948 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:1986 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2155 +#: templates/js/translated/stock.js:2159 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2169 +#: templates/js/translated/stock.js:2173 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2174 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2400 +#: templates/js/translated/stock.js:2404 msgid "Load Subloactions" msgstr "" -#: templates/js/translated/stock.js:2484 +#: templates/js/translated/stock.js:2493 msgid "Details" msgstr "详情" -#: templates/js/translated/stock.js:2500 +#: templates/js/translated/stock.js:2509 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2522 +#: templates/js/translated/stock.js:2531 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2541 +#: templates/js/translated/stock.js:2550 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2560 +#: templates/js/translated/stock.js:2569 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2578 +#: templates/js/translated/stock.js:2587 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2610 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2609 +#: templates/js/translated/stock.js:2618 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2685 +#: templates/js/translated/stock.js:2694 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772 +#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:2794 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2815 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2816 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2818 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:2819 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2811 +#: templates/js/translated/stock.js:2820 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2812 +#: templates/js/translated/stock.js:2821 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:2825 +#: templates/js/translated/stock.js:2834 msgid "Select part to install" msgstr "" @@ -10133,61 +10259,57 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:535 +#: templates/js/translated/tables.js:537 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:538 +#: templates/js/translated/tables.js:540 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:543 +#: templates/js/translated/tables.js:545 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "to" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "of" msgstr "" -#: templates/js/translated/tables.js:545 +#: templates/js/translated/tables.js:547 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:549 templates/navbar.html:102 +#: templates/js/translated/tables.js:551 templates/navbar.html:102 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "搜索" -#: templates/js/translated/tables.js:552 +#: templates/js/translated/tables.js:554 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:555 +#: templates/js/translated/tables.js:557 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:558 -msgid "Refresh" -msgstr "" - -#: templates/js/translated/tables.js:561 +#: templates/js/translated/tables.js:563 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:564 +#: templates/js/translated/tables.js:566 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:567 +#: templates/js/translated/tables.js:569 msgid "All" msgstr "" diff --git a/InvenTree/order/api.py b/InvenTree/order/api.py index 72a47e113a..e15aa0dcd0 100644 --- a/InvenTree/order/api.py +++ b/InvenTree/order/api.py @@ -1,10 +1,13 @@ """JSON API for the Order app.""" +from django.db import transaction from django.db.models import F, Q from django.urls import include, path, re_path +from django.utils.translation import gettext_lazy as _ from django_filters import rest_framework as rest_filters from rest_framework import filters, status +from rest_framework.exceptions import ValidationError from rest_framework.response import Response import order.models as models @@ -116,12 +119,48 @@ class PurchaseOrderList(APIDownloadMixin, ListCreateAPI): def create(self, request, *args, **kwargs): """Save user information on create.""" - serializer = self.get_serializer(data=self.clean_data(request.data)) + + data = self.clean_data(request.data) + + duplicate_order = data.pop('duplicate_order', None) + duplicate_line_items = str2bool(data.pop('duplicate_line_items', False)) + duplicate_extra_lines = str2bool(data.pop('duplicate_extra_lines', False)) + + if duplicate_order is not None: + try: + duplicate_order = models.PurchaseOrder.objects.get(pk=duplicate_order) + except (ValueError, models.PurchaseOrder.DoesNotExist): + raise ValidationError({ + 'duplicate_order': [_('No matching purchase order found')], + }) + + serializer = self.get_serializer(data=data) serializer.is_valid(raise_exception=True) - item = serializer.save() - item.created_by = request.user - item.save() + with transaction.atomic(): + order = serializer.save() + order.created_by = request.user + order.save() + + # Duplicate line items from other order if required + if duplicate_order is not None: + + if duplicate_line_items: + for line in duplicate_order.lines.all(): + # Copy the line across to the new order + line.pk = None + line.order = order + line.received = 0 + + line.save() + + if duplicate_extra_lines: + for line in duplicate_order.extra_lines.all(): + # Copy the line across to the new order + line.pk = None + line.order = order + + line.save() headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) @@ -253,7 +292,7 @@ class PurchaseOrderList(APIDownloadMixin, ListCreateAPI): 'status', ] - ordering = '-creation_date' + ordering = '-reference' class PurchaseOrderDetail(RetrieveUpdateDestroyAPI): @@ -694,7 +733,7 @@ class SalesOrderList(APIDownloadMixin, ListCreateAPI): 'customer_reference', ] - ordering = '-creation_date' + ordering = '-reference' class SalesOrderDetail(RetrieveUpdateDestroyAPI): diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 87ce0b525a..d3d4922d46 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -702,7 +702,7 @@ class SalesOrder(Order): """Check if this order is "shipped" (all line items delivered).""" return self.lines.count() > 0 and all([line.is_completed() for line in self.lines.all()]) - def can_complete(self, raise_error=False): + def can_complete(self, raise_error=False, allow_incomplete_lines=False): """Test if this SalesOrder can be completed. Throws a ValidationError if cannot be completed. @@ -720,7 +720,7 @@ class SalesOrder(Order): elif self.pending_shipment_count > 0: raise ValidationError(_("Order cannot be completed as there are incomplete shipments")) - elif self.pending_line_count > 0: + elif not allow_incomplete_lines and self.pending_line_count > 0: raise ValidationError(_("Order cannot be completed as there are incomplete line items")) except ValidationError as e: @@ -732,9 +732,9 @@ class SalesOrder(Order): return True - def complete_order(self, user): + def complete_order(self, user, **kwargs): """Mark this order as "complete.""" - if not self.can_complete(): + if not self.can_complete(**kwargs): return False self.status = SalesOrderStatus.SHIPPED diff --git a/InvenTree/order/serializers.py b/InvenTree/order/serializers.py index e2ec2c8761..f161d42b5b 100644 --- a/InvenTree/order/serializers.py +++ b/InvenTree/order/serializers.py @@ -19,7 +19,7 @@ import stock.models import stock.serializers from common.settings import currency_code_mappings from company.serializers import CompanyBriefSerializer, SupplierPartSerializer -from InvenTree.helpers import extract_serial_numbers, normalize +from InvenTree.helpers import extract_serial_numbers, normalize, str2bool from InvenTree.serializers import (InvenTreeAttachmentSerializer, InvenTreeDecimalField, InvenTreeModelSerializer, @@ -204,6 +204,23 @@ class PurchaseOrderCancelSerializer(serializers.Serializer): class PurchaseOrderCompleteSerializer(serializers.Serializer): """Serializer for completing a purchase order.""" + accept_incomplete = serializers.BooleanField( + label=_('Accept Incomplete'), + help_text=_('Allow order to be closed with incomplete line items'), + required=False, + default=False, + ) + + def validate_accept_incomplete(self, value): + """Check if the 'accept_incomplete' field is required""" + + order = self.context['order'] + + if not value and not order.is_complete: + raise ValidationError(_("Order has incomplete line items")) + + return value + class Meta: """Metaclass options.""" @@ -1079,13 +1096,43 @@ class SalesOrderShipmentAllocationItemSerializer(serializers.Serializer): class SalesOrderCompleteSerializer(serializers.Serializer): """DRF serializer for manually marking a sales order as complete.""" + accept_incomplete = serializers.BooleanField( + label=_('Accept Incomplete'), + help_text=_('Allow order to be closed with incomplete line items'), + required=False, + default=False, + ) + + def validate_accept_incomplete(self, value): + """Check if the 'accept_incomplete' field is required""" + + order = self.context['order'] + + if not value and not order.is_completed(): + raise ValidationError(_("Order has incomplete line items")) + + return value + + def get_context_data(self): + """Custom context data for this serializer""" + + order = self.context['order'] + + return { + 'is_complete': order.is_completed(), + 'pending_shipments': order.pending_shipment_count, + } + def validate(self, data): """Custom validation for the serializer""" data = super().validate(data) order = self.context['order'] - order.can_complete(raise_error=True) + order.can_complete( + raise_error=True, + allow_incomplete_lines=str2bool(data.get('accept_incomplete', False)), + ) return data @@ -1093,10 +1140,14 @@ class SalesOrderCompleteSerializer(serializers.Serializer): """Save the serializer to complete the SalesOrder""" request = self.context['request'] order = self.context['order'] + data = self.validated_data user = getattr(request, 'user', None) - order.complete_order(user) + order.complete_order( + user, + allow_incomplete_lines=str2bool(data.get('accept_incomplete', False)), + ) class SalesOrderCancelSerializer(serializers.Serializer): diff --git a/InvenTree/order/templates/order/order_base.html b/InvenTree/order/templates/order/order_base.html index 2d16796bc3..cbb82640db 100644 --- a/InvenTree/order/templates/order/order_base.html +++ b/InvenTree/order/templates/order/order_base.html @@ -46,6 +46,9 @@ {% if order.can_cancel %}
  • {% trans "Cancel order" %}
  • {% endif %} + {% if roles.purchase_order.add %} +
  • {% trans "Duplicate order" %}
  • + {% endif %} {% if order.status == PurchaseOrderStatus.PENDING %} @@ -217,30 +220,14 @@ $('#print-order-report').click(function() { }); {% endif %} +{% if roles.purchase_order.change %} + $("#edit-order").click(function() { - constructForm('{% url "api-po-detail" order.pk %}', { - fields: { - reference: { - icon: 'fa-hashtag', - }, - {% if order.lines.count == 0 and order.status == PurchaseOrderStatus.PENDING %} - supplier: { - }, - {% endif %} - supplier_reference: {}, - description: {}, - target_date: { - icon: 'fa-calendar-alt', - }, - link: { - icon: 'fa-link', - }, - responsible: { - icon: 'fa-user', - }, - }, - title: '{% trans "Edit Purchase Order" %}', + editPurchaseOrder({{ order.pk }}, { + {% if order.lines.count > 0 or order.status != PurchaseOrderStatus.PENDING %} + hide_supplier: true, + {% endif %} reload: true, }); }); @@ -293,6 +280,16 @@ $("#cancel-order").click(function() { ); }); +{% endif %} + +{% if roles.purchase_order.add %} +$('#duplicate-order').click(function() { + duplicatePurchaseOrder( + {{ order.pk }}, + ); +}); +{% endif %} + $("#export-order").click(function() { exportOrder('{% url "po-export" order.id %}'); }); diff --git a/InvenTree/order/templates/order/sales_order_base.html b/InvenTree/order/templates/order/sales_order_base.html index 0c14d9859d..cb7f998578 100644 --- a/InvenTree/order/templates/order/sales_order_base.html +++ b/InvenTree/order/templates/order/sales_order_base.html @@ -64,7 +64,7 @@ src="{% static 'img/blank_image.png' %}" {% if order.status == SalesOrderStatus.PENDING %} - {% endif %} @@ -253,12 +253,12 @@ $("#cancel-order").click(function() { }); $("#complete-order").click(function() { - constructForm('{% url "api-so-complete" order.id %}', { - method: 'POST', - title: '{% trans "Complete Sales Order" %}', - confirm: true, - reload: true, - }); + completeSalesOrder( + {{ order.pk }}, + { + reload: true, + } + ); }); {% if report_enabled %} diff --git a/InvenTree/order/test_api.py b/InvenTree/order/test_api.py index 7824fcb4a7..da8011923b 100644 --- a/InvenTree/order/test_api.py +++ b/InvenTree/order/test_api.py @@ -225,6 +225,64 @@ class PurchaseOrderTest(OrderTest): expected_code=201 ) + def test_po_duplicate(self): + """Test that we can duplicate a PurchaseOrder via the API""" + + self.assignRole('purchase_order.add') + + po = models.PurchaseOrder.objects.get(pk=1) + + self.assertTrue(po.lines.count() > 0) + + # Add some extra line items to this order + for idx in range(5): + models.PurchaseOrderExtraLine.objects.create( + order=po, + quantity=idx + 10, + reference='some reference', + ) + + data = self.get(reverse('api-po-detail', kwargs={'pk': 1})).data + + del data['pk'] + del data['reference'] + + data['duplicate_order'] = 1 + data['duplicate_line_items'] = True + data['duplicate_extra_lines'] = False + + data['reference'] = 'PO-9999' + + # Duplicate via the API + response = self.post( + reverse('api-po-list'), + data, + expected_code=201 + ) + + # Order is for the same supplier + self.assertEqual(response.data['supplier'], po.supplier.pk) + + po_dup = models.PurchaseOrder.objects.get(pk=response.data['pk']) + + self.assertEqual(po_dup.extra_lines.count(), 0) + self.assertEqual(po_dup.lines.count(), po.lines.count()) + + data['reference'] = 'PO-9998' + data['duplicate_line_items'] = False + data['duplicate_extra_lines'] = True + + response = self.post( + reverse('api-po-list'), + data, + expected_code=201, + ) + + po_dup = models.PurchaseOrder.objects.get(pk=response.data['pk']) + + self.assertEqual(po_dup.extra_lines.count(), po.extra_lines.count()) + self.assertEqual(po_dup.lines.count(), 0) + def test_po_cancel(self): """Test the PurchaseOrderCancel API endpoint.""" po = models.PurchaseOrder.objects.get(pk=1) @@ -264,7 +322,19 @@ class PurchaseOrderTest(OrderTest): self.assignRole('purchase_order.add') - self.post(url, {}, expected_code=201) + # Should fail due to incomplete lines + response = self.post(url, {}, expected_code=400) + + self.assertIn('Order has incomplete line items', str(response.data['accept_incomplete'])) + + # Post again, accepting incomplete line items + self.post( + url, + { + 'accept_incomplete': True, + }, + expected_code=201 + ) po.refresh_from_db() diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 1d5b10ac61..42c1b84b59 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -1,6 +1,6 @@ """Provides a JSON API for the Part app.""" -import datetime +import functools from decimal import Decimal, InvalidOperation from django.db import transaction @@ -474,27 +474,27 @@ class PartScheduling(RetrieveAPI): def retrieve(self, request, *args, **kwargs): """Return scheduling information for the referenced Part instance""" - today = datetime.datetime.now().date() part = self.get_object() schedule = [] - def add_schedule_entry(date, quantity, title, label, url): + def add_schedule_entry(date, quantity, title, label, url, speculative_quantity=0): """Check if a scheduled entry should be added: - date must be non-null - date cannot be in the "past" - quantity must not be zero """ - if date and date >= today and quantity != 0: - schedule.append({ - 'date': date, - 'quantity': quantity, - 'title': title, - 'label': label, - 'url': url, - }) + + schedule.append({ + 'date': date, + 'quantity': quantity, + 'speculative_quantity': speculative_quantity, + 'title': title, + 'label': label, + 'url': url, + }) # Add purchase order (incoming stock) information po_lines = order.models.PurchaseOrderLineItem.objects.filter( @@ -571,23 +571,94 @@ class PartScheduling(RetrieveAPI): and just looking at what stock items the user has actually allocated against the Build. """ - build_allocations = BuildItem.objects.filter( - stock_item__part=part, - build__status__in=BuildStatus.ACTIVE_CODES, - ) + # Grab a list of BomItem objects that this part might be used in + bom_items = BomItem.objects.filter(part.get_used_in_bom_item_filter()) - for allocation in build_allocations: + # Track all outstanding build orders + seen_builds = set() - add_schedule_entry( - allocation.build.target_date, - -allocation.quantity, - _('Stock required for Build Order'), - str(allocation.build), - allocation.build.get_absolute_url(), - ) + for bom_item in bom_items: + # Find a list of active builds for this BomItem + + if bom_item.inherited: + # An "inherited" BOM item filters down to variant parts also + childs = bom_item.part.get_descendants(include_self=True) + builds = Build.objects.filter( + status__in=BuildStatus.ACTIVE_CODES, + part__in=childs, + ) + else: + builds = Build.objects.filter( + status__in=BuildStatus.ACTIVE_CODES, + part=bom_item.part, + ) + + for build in builds: + + # Ensure we don't double-count any builds + if build in seen_builds: + continue + + seen_builds.add(build) + + if bom_item.sub_part.trackable: + # Trackable parts are allocated against the outputs + required_quantity = build.remaining * bom_item.quantity + else: + # Non-trackable parts are allocated against the build itself + required_quantity = build.quantity * bom_item.quantity + + # Grab all allocations against the spefied BomItem + allocations = BuildItem.objects.filter( + bom_item=bom_item, + build=build, + ) + + # Total allocated for *this* part + part_allocated_quantity = 0 + + # Total allocated for *any* part + total_allocated_quantity = 0 + + for allocation in allocations: + total_allocated_quantity += allocation.quantity + + if allocation.stock_item.part == part: + part_allocated_quantity += allocation.quantity + + speculative_quantity = 0 + + # Consider the case where the build order is *not* fully allocated + if required_quantity > total_allocated_quantity: + speculative_quantity = -1 * (required_quantity - total_allocated_quantity) + + add_schedule_entry( + build.target_date, + -part_allocated_quantity, + _('Stock required for Build Order'), + str(build), + build.get_absolute_url(), + speculative_quantity=speculative_quantity + ) + + def compare(entry_1, entry_2): + """Comparison function for sorting entries by date. + + Account for the fact that either date might be None + """ + + date_1 = entry_1['date'] + date_2 = entry_2['date'] + + if date_1 is None: + return -1 + elif date_2 is None: + return 1 + + return -1 if date_1 < date_2 else 1 # Sort by incrementing date values - schedule = sorted(schedule, key=lambda entry: entry['date']) + schedule = sorted(schedule, key=functools.cmp_to_key(compare)) return Response(schedule) @@ -1746,28 +1817,7 @@ class BomList(ListCreateDestroyAPIView): # Extract the part we are interested in uses_part = Part.objects.get(pk=uses) - # Construct the database query in multiple parts - - # A) Direct specification of sub_part - q_A = Q(sub_part=uses_part) - - # B) BomItem is inherited and points to a "parent" of this part - parents = uses_part.get_ancestors(include_self=False) - - q_B = Q( - inherited=True, - sub_part__in=parents - ) - - # C) Substitution of variant parts - # TODO - - # D) Specification of individual substitutes - # TODO - - q = q_A | q_B - - queryset = queryset.filter(q) + queryset = queryset.filter(uses_part.get_used_in_bom_item_filter()) except (ValueError, Part.DoesNotExist): pass diff --git a/InvenTree/part/migrations/0084_partcategory_icon.py b/InvenTree/part/migrations/0084_partcategory_icon.py new file mode 100644 index 0000000000..8b92cfaad0 --- /dev/null +++ b/InvenTree/part/migrations/0084_partcategory_icon.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.15 on 2022-08-15 08:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0083_auto_20220731_2357'), + ] + + operations = [ + migrations.AddField( + model_name='partcategory', + name='icon', + field=models.CharField(blank=True, help_text='Icon (optional)', max_length=100, verbose_name='Icon'), + ), + ] diff --git a/InvenTree/part/migrations/0085_partparametertemplate_description.py b/InvenTree/part/migrations/0085_partparametertemplate_description.py new file mode 100644 index 0000000000..9e0103eeaf --- /dev/null +++ b/InvenTree/part/migrations/0085_partparametertemplate_description.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.15 on 2022-08-24 12:09 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0084_partcategory_icon'), + ] + + operations = [ + migrations.AddField( + model_name='partparametertemplate', + name='description', + field=models.CharField(blank=True, help_text='Parameter description', max_length=250, verbose_name='Description'), + ), + ] diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 38319a2e91..16035c5a46 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -101,6 +101,13 @@ class PartCategory(MetadataMixin, InvenTreeTree): default_keywords = models.CharField(null=True, blank=True, max_length=250, verbose_name=_('Default keywords'), help_text=_('Default keywords for parts in this category')) + icon = models.CharField( + blank=True, + max_length=100, + verbose_name=_("Icon"), + help_text=_("Icon (optional)") + ) + @staticmethod def get_api_url(): """Return the API url associated with the PartCategory model""" @@ -1429,6 +1436,45 @@ class Part(MetadataMixin, MPTTModel): return parts + def get_used_in_bom_item_filter(self, include_variants=True, include_substitutes=True): + """Return a BomItem queryset which returns all BomItem instances which refer to *this* part. + + As the BOM allocation logic is somewhat complicted, there are some considerations: + + A) This part may be directly specified in a BomItem instance + B) This part may be a *variant* of a part which is directly specified in a BomItem instance + C) This part may be a *substitute* for a part which is directly specifed in a BomItem instance + + So we construct a query for each case, and combine them... + """ + + # Cache all *parent* parts + parents = self.get_ancestors(include_self=False) + + # Case A: This part is directly specified in a BomItem (we always use this case) + query = Q( + sub_part=self, + ) + + if include_variants: + # Case B: This part is a *variant* of a part which is specified in a BomItem which allows variants + query |= Q( + allow_variants=True, + sub_part__in=parents, + ) + + # Case C: This part is a *substitute* of a part which is directly specified in a BomItem + if include_substitutes: + + # Grab a list of BomItem substitutes which reference this part + substitutes = self.substitute_items.all() + + query |= Q( + pk__in=[substitute.bom_item.pk for substitute in substitutes], + ) + + return query + def get_used_in_filter(self, include_inherited=True): """Return a query filter for all parts that this part is used in. @@ -2323,7 +2369,7 @@ class PartTestTemplate(models.Model): def validate_template_name(name): """Prevent illegal characters in "name" field for PartParameterTemplate.""" - for c in "!@#$%^&*()<>{}[].,?/\\|~`_+-=\'\"": # noqa: P103 + for c in "\"\'`!?|": # noqa: P103 if c in str(name): raise ValidationError(_(f"Illegal character in template name ({c})")) @@ -2378,6 +2424,13 @@ class PartParameterTemplate(models.Model): units = models.CharField(max_length=25, verbose_name=_('Units'), help_text=_('Parameter Units'), blank=True) + description = models.CharField( + max_length=250, + verbose_name=_('Description'), + help_text=_('Parameter description'), + blank=True, + ) + class PartParameter(models.Model): """A PartParameter is a specific instance of a PartParameterTemplate. It assigns a particular parameter pair to a part. diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 71fb7c303e..a757f566b6 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -75,6 +75,7 @@ class CategorySerializer(InvenTreeModelSerializer): 'pathstring', 'starred', 'url', + 'icon', ] @@ -88,6 +89,7 @@ class CategoryTree(InvenTreeModelSerializer): 'pk', 'name', 'parent', + 'icon', ] @@ -238,6 +240,7 @@ class PartParameterTemplateSerializer(InvenTreeModelSerializer): 'pk', 'name', 'units', + 'description', ] diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html index d31fe08321..6d55397007 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -1,6 +1,7 @@ {% extends "part/part_app_base.html" %} {% load static %} {% load i18n %} +{% load inventree_extras %} {% block sidebar %} {% include 'part/category_sidebar.html' %} @@ -12,7 +13,12 @@ {% block heading %} {% if category %} -{% trans "Part Category" %}: {{ category.name }} +{% trans "Part Category" %}: +{% settings_value "PART_CATEGORY_DEFAULT_ICON" as default_icon %} +{% if category.icon or default_icon %} + +{% endif %} +{{ category.name }} {% else %} {% trans "Parts" %} {% endif %} @@ -288,7 +294,8 @@ node.href = `/part/category/${node.pk}/`; return node; - } + }, + defaultIcon: global_settings.PART_CATEGORY_DEFAULT_ICON, }); onPanelLoad('subcategories', function() { diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index 4ac5d28d08..86ad10f35e 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -40,6 +40,11 @@

    {% trans "Part Scheduling" %}

    {% include "spacer.html" %} +
    + +
    @@ -427,7 +432,16 @@ // Load the "scheduling" tab onPanelLoad('scheduling', function() { - loadPartSchedulingChart('part-schedule-chart', {{ part.pk }}); + var chart = loadPartSchedulingChart('part-schedule-chart', {{ part.pk }}); + + $('#btn-schedule-reload').click(function() { + + if (chart != null) { + chart.destroy(); + } + + chart = loadPartSchedulingChart('part-schedule-chart', {{ part.pk }}); + }); }); // Load the "suppliers" tab diff --git a/InvenTree/part/templates/part/part_scheduling.html b/InvenTree/part/templates/part/part_scheduling.html index 61f49f2d47..f0d4acccc6 100644 --- a/InvenTree/part/templates/part/part_scheduling.html +++ b/InvenTree/part/templates/part/part_scheduling.html @@ -4,3 +4,15 @@
    + + + + + + + + + + + +
    {% trans "Link" %}{% trans "Description" %}{% trans "Date" %}{% trans "Scheduled Quantity" %}
    diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py index 92f760e1d4..6116acd327 100644 --- a/InvenTree/part/templatetags/inventree_extras.py +++ b/InvenTree/part/templatetags/inventree_extras.py @@ -17,6 +17,7 @@ import InvenTree.helpers from common.models import ColorTheme, InvenTreeSetting, InvenTreeUserSetting from common.settings import currency_code_default from InvenTree import settings, version +from plugin import registry from plugin.models import NotificationUserSetting, PluginSetting register = template.Library() @@ -149,6 +150,25 @@ def plugins_enabled(*args, **kwargs): return djangosettings.PLUGINS_ENABLED +@register.simple_tag() +def plugins_info(*args, **kwargs): + """Return information about activated plugins.""" + # Check if plugins are even enabled + if not djangosettings.PLUGINS_ENABLED: + return False + + # Fetch plugins + plug_list = [plg for plg in registry.plugins.values() if plg.plugin_config().active] + # Format list + return [ + { + 'name': plg.name, + 'slug': plg.slug, + 'version': plg.version + } for plg in plug_list + ] + + @register.simple_tag() def inventree_db_engine(*args, **kwargs): """Return the InvenTree database backend e.g. 'postgresql'.""" @@ -175,7 +195,7 @@ def inventree_title(*args, **kwargs): @register.simple_tag() def inventree_logo(**kwargs): - """Return the InvenTree logo, *or* a custom logo if the user has uploaded one. + """Return the InvenTree logo, *or* a custom logo if the user has provided one. Returns a path to an image file, which can be rendered in the web interface """ @@ -183,6 +203,13 @@ def inventree_logo(**kwargs): return InvenTree.helpers.getLogoImage(**kwargs) +@register.simple_tag() +def inventree_splash(**kwargs): + """Return the URL for the InvenTree splash screen, *or* a custom screen if the user has provided one.""" + + return InvenTree.helpers.getSplashScren(**kwargs) + + @register.simple_tag() def inventree_base_url(*args, **kwargs): """Return the INVENTREE_BASE_URL setting.""" diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py index c591c9405d..79819d613e 100644 --- a/InvenTree/part/test_api.py +++ b/InvenTree/part/test_api.py @@ -223,35 +223,73 @@ class PartCategoryAPITest(InvenTreeAPITestCase): self.assertEqual(PartCategoryParameterTemplate.objects.count(), 0) def test_bleach(self): - """Test that the data cleaning functionality is working""" + """Test that the data cleaning functionality is working. + + This helps to protect against XSS injection + """ url = reverse('api-part-category-detail', kwargs={'pk': 1}) - self.patch( - url, - { - 'description': '', - }, - expected_code=200 - ) + # Invalid values containing tags + invalid_values = [ + '', + 'Link', + "Link", + '', + ] - cat = PartCategory.objects.get(pk=1) + for v in invalid_values: + response = self.patch( + url, + { + 'description': v + }, + expected_code=400 + ) - # Image tags have been stripped - self.assertEqual(cat.description, '<img src=# onerror=alert("pwned")>') + self.assertIn('Remove HTML tags', str(response.data)) - self.patch( - url, - { - 'description': 'LINK', - }, - expected_code=200, - ) + # Raw characters should be allowed + allowed = [ + '<< hello', + 'Alpha & Omega', + 'A > B > C', + ] - # Tags must have been bleached out - cat.refresh_from_db() + for val in allowed: + response = self.patch( + url, + { + 'description': val, + }, + expected_code=200, + ) - self.assertEqual(cat.description, 'LINK<script>alert("h4x0r")</script>') + self.assertEqual(response.data['description'], val) + + def test_invisible_chars(self): + """Test that invisible characters are removed from the input data""" + + url = reverse('api-part-category-detail', kwargs={'pk': 1}) + + values = [ + 'A part\n category\n\t', + 'A\t part\t category\t', + 'A pa\rrt cat\r\r\regory', + 'A part\u200e catego\u200fry\u202e' + ] + + for val in values: + + response = self.patch( + url, + { + 'description': val, + }, + expected_code=200, + ) + + self.assertEqual(response.data['description'], 'A part category') class PartOptionsAPITest(InvenTreeAPITestCase): diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py index 96af71dda7..271800f729 100644 --- a/InvenTree/part/urls.py +++ b/InvenTree/part/urls.py @@ -28,9 +28,6 @@ part_detail_urls = [ category_urls = [ - # Top level subcategory display - re_path(r'^subcategory/', views.PartIndex.as_view(template_name='part/subcategory.html'), name='category-index-subcategory'), - # Category detail views re_path(r'(?P\d+)/', views.CategoryDetail.as_view(), name='category-detail'), ] diff --git a/InvenTree/plugin/admin.py b/InvenTree/plugin/admin.py index 84da9e9d98..7bb0558600 100644 --- a/InvenTree/plugin/admin.py +++ b/InvenTree/plugin/admin.py @@ -52,7 +52,7 @@ class PluginConfigAdmin(admin.ModelAdmin): """Custom admin with restricted id fields.""" readonly_fields = ["key", "name", ] - list_display = ['name', 'key', '__str__', 'active', ] + list_display = ['name', 'key', '__str__', 'active', 'is_sample'] list_filter = ['active'] actions = [plugin_activate, plugin_deactivate, ] inlines = [PluginSettingInline, ] diff --git a/InvenTree/plugin/apps.py b/InvenTree/plugin/apps.py index 9fdd43e6c6..bb0c8cfb94 100644 --- a/InvenTree/plugin/apps.py +++ b/InvenTree/plugin/apps.py @@ -43,7 +43,7 @@ class PluginAppConfig(AppConfig): pass # get plugins and init them - registry.collect_plugins() + registry.plugin_modules = registry.collect_plugins() registry.load_plugins() # drop out of maintenance diff --git a/InvenTree/plugin/builtin/integration/core_notifications.py b/InvenTree/plugin/builtin/integration/core_notifications.py index 6c0cee5f02..d21dc8c46f 100644 --- a/InvenTree/plugin/builtin/integration/core_notifications.py +++ b/InvenTree/plugin/builtin/integration/core_notifications.py @@ -1,7 +1,7 @@ """Core set of Notifications as a Plugin.""" from django.template.loader import render_to_string -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from allauth.account.models import EmailAddress diff --git a/InvenTree/plugin/helpers.py b/InvenTree/plugin/helpers.py index 89edb1a571..7a873f0a90 100644 --- a/InvenTree/plugin/helpers.py +++ b/InvenTree/plugin/helpers.py @@ -7,6 +7,7 @@ import pkgutil import subprocess import sysconfig import traceback +from importlib.metadata import entry_points from django import template from django.conf import settings @@ -68,18 +69,21 @@ def handle_error(error, do_raise: bool = True, do_log: bool = True, log_name: st package_name = pathlib.Path(package_path).relative_to(install_path).parts[0] except ValueError: # is file - loaded -> form a name for that - path_obj = pathlib.Path(package_path).relative_to(settings.BASE_DIR) - path_parts = [*path_obj.parts] - path_parts[-1] = path_parts[-1].replace(path_obj.suffix, '') # remove suffix + try: + path_obj = pathlib.Path(package_path).relative_to(settings.BASE_DIR) + path_parts = [*path_obj.parts] + path_parts[-1] = path_parts[-1].replace(path_obj.suffix, '') # remove suffix - # remove path prefixes - if path_parts[0] == 'plugin': - path_parts.remove('plugin') - path_parts.pop(0) - else: - path_parts.remove('plugins') # pragma: no cover + # remove path prefixes + if path_parts[0] == 'plugin': + path_parts.remove('plugin') + path_parts.pop(0) + else: + path_parts.remove('plugins') # pragma: no cover - package_name = '.'.join(path_parts) + package_name = '.'.join(path_parts) + except Exception: + package_name = package_path if do_log: log_kwargs = {} @@ -92,6 +96,11 @@ def handle_error(error, do_raise: bool = True, do_log: bool = True, log_name: st if settings.TESTING_ENV and package_name != 'integration.broken_sample' and isinstance(error, IntegrityError): raise error # pragma: no cover raise IntegrationPluginError(package_name, str(error)) + + +def get_entrypoints(): + """Returns list for entrypoints for InvenTree plugins.""" + return entry_points().get('inventree_plugins', []) # endregion diff --git a/InvenTree/plugin/mock/__init__.py b/InvenTree/plugin/mock/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/InvenTree/plugin/mock/simple.py b/InvenTree/plugin/mock/simple.py new file mode 100644 index 0000000000..8130aa7eed --- /dev/null +++ b/InvenTree/plugin/mock/simple.py @@ -0,0 +1,10 @@ +"""Very simple sample plugin""" + +from plugin import InvenTreePlugin + + +class SimplePlugin(InvenTreePlugin): + """A very simple plugin.""" + + NAME = 'SimplePlugin' + SLUG = "simple" diff --git a/InvenTree/plugin/models.py b/InvenTree/plugin/models.py index 9a58e96fdc..7eca4e1354 100644 --- a/InvenTree/plugin/models.py +++ b/InvenTree/plugin/models.py @@ -3,6 +3,7 @@ import warnings from django.conf import settings +from django.contrib import admin from django.contrib.auth.models import User from django.db import models from django.utils.translation import gettext_lazy as _ @@ -123,11 +124,11 @@ class PluginConfig(models.Model): self.__org_active = self.active # append settings from registry - self.plugin = registry.plugins.get(self.key, None) + plugin = registry.plugins_full.get(self.key, None) def get_plugin_meta(name): - if self.plugin: - return str(getattr(self.plugin, name, None)) + if plugin: + return str(getattr(plugin, name, None)) return None self.meta = { @@ -136,6 +137,9 @@ class PluginConfig(models.Model): 'package_path', 'settings_url', ] } + # Save plugin + self.plugin: InvenTreePlugin = plugin + def save(self, force_insert=False, force_update=False, *args, **kwargs): """Extend save method to reload plugins if the 'active' status changes.""" reload = kwargs.pop('no_reload', False) # check if no_reload flag is set @@ -151,10 +155,26 @@ class PluginConfig(models.Model): return ret + @admin.display(boolean=True, description=_('Sample plugin')) + def is_sample(self) -> bool: + """Is this plugin a sample app?""" + # Loaded and active plugin + if isinstance(self.plugin, InvenTreePlugin): + return self.plugin.check_is_sample() + + # If no plugin_class is available it can not be a sample + if not self.plugin: + return False + + # Not loaded plugin + return self.plugin.check_is_sample() # pragma: no cover + class PluginSetting(common.models.BaseInvenTreeSetting): """This model represents settings for individual plugins.""" + typ = 'plugin' + class Meta: """Meta for PluginSetting.""" unique_together = [ @@ -204,6 +224,8 @@ class PluginSetting(common.models.BaseInvenTreeSetting): class NotificationUserSetting(common.models.BaseInvenTreeSetting): """This model represents notification settings for a user.""" + typ = 'notification' + class Meta: """Meta for NotificationUserSetting.""" unique_together = [ diff --git a/InvenTree/plugin/plugin.py b/InvenTree/plugin/plugin.py index b59b42bc3b..d39ab2187c 100644 --- a/InvenTree/plugin/plugin.py +++ b/InvenTree/plugin/plugin.py @@ -2,11 +2,11 @@ import inspect import logging -import os -import pathlib import warnings from datetime import datetime -from importlib.metadata import metadata +from distutils.sysconfig import get_python_lib +from importlib.metadata import PackageNotFoundError, metadata +from pathlib import Path from django.conf import settings from django.db.utils import OperationalError, ProgrammingError @@ -171,7 +171,24 @@ class MixinBase: return mixins -class InvenTreePlugin(MixinBase, MetaBase): +class VersionMixin: + """Mixin to enable version checking.""" + + MIN_VERSION = None + MAX_VERSION = None + + def check_version(self, latest=None) -> bool: + """Check if plugin functions for the current InvenTree version.""" + from InvenTree import version + + latest = latest if latest else version.inventreeVersionTuple() + min_v = version.inventreeVersionTuple(self.MIN_VERSION) + max_v = version.inventreeVersionTuple(self.MAX_VERSION) + + return bool(min_v <= latest <= max_v) + + +class InvenTreePlugin(VersionMixin, MixinBase, MetaBase): """The InvenTreePlugin class is used to integrate with 3rd party software. DO NOT USE THIS DIRECTLY, USE plugin.InvenTreePlugin @@ -191,11 +208,18 @@ class InvenTreePlugin(MixinBase, MetaBase): """ super().__init__() self.add_mixin('base') - self.def_path = inspect.getfile(self.__class__) - self.path = os.path.dirname(self.def_path) self.define_package() + @classmethod + def file(cls) -> Path: + """File that contains plugin definition.""" + return Path(inspect.getfile(cls)) + + def path(self) -> Path: + """Path to plugins base folder.""" + return self.file().parent + def _get_value(self, meta_name: str, package_name: str) -> str: """Extract values from class meta or package info. @@ -243,43 +267,54 @@ class InvenTreePlugin(MixinBase, MetaBase): @property def version(self): """Version of plugin.""" - version = self._get_value('VERSION', 'version') - return version + return self._get_value('VERSION', 'version') @property def website(self): """Website of plugin - if set else None.""" - website = self._get_value('WEBSITE', 'website') - return website + return self._get_value('WEBSITE', 'website') @property def license(self): """License of plugin.""" - lic = self._get_value('LICENSE', 'license') - return lic + return self._get_value('LICENSE', 'license') # endregion + @classmethod + def check_is_package(cls): + """Is the plugin delivered as a package.""" + return getattr(cls, 'is_package', False) + @property def _is_package(self): """Is the plugin delivered as a package.""" return getattr(self, 'is_package', False) - @property - def is_sample(self): + @classmethod + def check_is_sample(cls) -> bool: """Is this plugin part of the samples?""" - path = str(self.package_path) - return path.startswith('plugin/samples/') + return str(cls.check_package_path()).startswith('plugin/samples/') + + @property + def is_sample(self) -> bool: + """Is this plugin part of the samples?""" + return self.check_is_sample() + + @classmethod + def check_package_path(cls): + """Path to the plugin.""" + if cls.check_is_package(): + return cls.__module__ # pragma: no cover + + try: + return cls.file().relative_to(settings.BASE_DIR) + except ValueError: + return cls.file() @property def package_path(self): """Path to the plugin.""" - if self._is_package: - return self.__module__ # pragma: no cover - - try: - return pathlib.Path(self.def_path).relative_to(settings.BASE_DIR) - except ValueError: - return pathlib.Path(self.def_path) + return self.check_package_path() @property def settings_url(self): @@ -289,12 +324,25 @@ class InvenTreePlugin(MixinBase, MetaBase): # region package info def _get_package_commit(self): """Get last git commit for the plugin.""" - return get_git_log(self.def_path) + return get_git_log(str(self.file())) + + @classmethod + def is_editable(cls): + """Returns if the current part is editable.""" + pkg_name = cls.__name__.split('.')[0] + dist_info = list(Path(get_python_lib()).glob(f'{pkg_name}-*.dist-info')) + return bool(len(dist_info) == 1) @classmethod def _get_package_metadata(cls): """Get package metadata for plugin.""" - meta = metadata(cls.__name__) + + # Try simple metadata lookup + try: + meta = metadata(cls.__name__) + # Simpel lookup did not work - get data from module + except PackageNotFoundError: + meta = metadata(cls.__module__.split('.')[0]) return { 'author': meta['Author-email'], diff --git a/InvenTree/plugin/registry.py b/InvenTree/plugin/registry.py index f60972accb..9b0e8e29c0 100644 --- a/InvenTree/plugin/registry.py +++ b/InvenTree/plugin/registry.py @@ -4,13 +4,14 @@ - Manages setup and teardown of plugin class instances """ +import imp import importlib import logging import os import subprocess -from importlib import metadata, reload +from importlib import reload from pathlib import Path -from typing import OrderedDict +from typing import Dict, List, OrderedDict from django.apps import apps from django.conf import settings @@ -24,8 +25,8 @@ from maintenance_mode.core import (get_maintenance_mode, maintenance_mode_on, from InvenTree.config import get_setting -from .helpers import (IntegrationPluginError, get_plugins, handle_error, - log_error) +from .helpers import (IntegrationPluginError, get_entrypoints, get_plugins, + handle_error, log_error) from .plugin import InvenTreePlugin logger = logging.getLogger('inventree') @@ -40,19 +41,20 @@ class PluginsRegistry: Set up all needed references for internal and external states. """ # plugin registry - self.plugins = {} - self.plugins_inactive = {} + self.plugins: Dict[str, InvenTreePlugin] = {} # List of active instances + self.plugins_inactive: Dict[str, InvenTreePlugin] = {} # List of inactive instances + self.plugins_full: Dict[str, InvenTreePlugin] = {} # List of all plugin instances - self.plugin_modules = [] # Holds all discovered plugins + self.plugin_modules: List(InvenTreePlugin) = [] # Holds all discovered plugins - self.errors = {} # Holds discovering errors + self.errors = {} # Holds discovering errors # flags - self.is_loading = False - self.apps_loading = True # Marks if apps were reloaded yet - self.git_is_modern = True # Is a modern version of git available + self.is_loading = False # Are plugins beeing loaded right now + self.apps_loading = True # Marks if apps were reloaded yet + self.git_is_modern = True # Is a modern version of git available - self.installed_apps = [] # Holds all added plugin_paths + self.installed_apps = [] # Holds all added plugin_paths # mixins self.mixins_settings = {} @@ -200,7 +202,7 @@ class PluginsRegistry: if settings.TESTING: custom_dirs = os.getenv('INVENTREE_PLUGIN_TEST_DIR', None) - else: + else: # pragma: no cover custom_dirs = get_setting('INVENTREE_PLUGIN_DIR', 'plugin_dir') # Load from user specified directories (unless in testing mode) @@ -215,7 +217,7 @@ class PluginsRegistry: if not pd.exists(): try: pd.mkdir(exist_ok=True) - except Exception: + except Exception: # pragma: no cover logger.error(f"Could not create plugin directory '{pd}'") continue @@ -225,24 +227,31 @@ class PluginsRegistry: if not init_filename.exists(): try: init_filename.write_text("# InvenTree plugin directory\n") - except Exception: + except Exception: # pragma: no cover logger.error(f"Could not create file '{init_filename}'") continue + # By this point, we have confirmed that the directory at least exists if pd.exists() and pd.is_dir(): - # By this point, we have confirmed that the directory at least exists - logger.info(f"Added plugin directory: '{pd}'") - dirs.append(pd) + # Convert to python dot-path + if pd.is_relative_to(settings.BASE_DIR): + pd_path = '.'.join(pd.relative_to(settings.BASE_DIR).parts) + else: + pd_path = str(pd) + + # Add path + dirs.append(pd_path) + logger.info(f"Added plugin directory: '{pd}' as '{pd_path}'") return dirs def collect_plugins(self): - """Collect plugins from all possible ways of loading.""" + """Collect plugins from all possible ways of loading. Returned as list.""" if not settings.PLUGINS_ENABLED: # Plugins not enabled, do nothing return # pragma: no cover - self.plugin_modules = [] # clear + collected_plugins = [] # Collect plugins from paths for plugin in self.plugin_dirs(): @@ -258,26 +267,33 @@ class PluginsRegistry: parent_path = str(parent_obj.parent) plugin = parent_obj.name - modules = get_plugins(importlib.import_module(plugin), InvenTreePlugin, path=parent_path) + # Gather Modules + if parent_path: + raw_module = imp.load_source(plugin, str(parent_obj.joinpath('__init__.py'))) + else: + raw_module = importlib.import_module(plugin) + modules = get_plugins(raw_module, InvenTreePlugin, path=parent_path) if modules: - [self.plugin_modules.append(item) for item in modules] + [collected_plugins.append(item) for item in modules] # Check if not running in testing mode and apps should be loaded from hooks if (not settings.PLUGIN_TESTING) or (settings.PLUGIN_TESTING and settings.PLUGIN_TESTING_SETUP): # Collect plugins from setup entry points - for entry in metadata.entry_points().get('inventree_plugins', []): # pragma: no cover + for entry in get_entrypoints(): try: plugin = entry.load() plugin.is_package = True plugin._get_package_metadata() - self.plugin_modules.append(plugin) - except Exception as error: + collected_plugins.append(plugin) + except Exception as error: # pragma: no cover handle_error(error, do_raise=False, log_name='discovery') # Log collected plugins - logger.info(f'Collected {len(self.plugin_modules)} plugins!') - logger.info(", ".join([a.__module__ for a in self.plugin_modules])) + logger.info(f'Collected {len(collected_plugins)} plugins!') + logger.info(", ".join([a.__module__ for a in collected_plugins])) + + return collected_plugins def install_plugin_file(self): """Make sure all plugins are installed in the current enviroment.""" @@ -324,74 +340,77 @@ class PluginsRegistry: # endregion # region general internal loading /activating / deactivating / deloading - def _init_plugins(self, disabled=None): + def _init_plugins(self, disabled: str = None): """Initialise all found plugins. - :param disabled: loading path of disabled app, defaults to None - :type disabled: str, optional - :raises error: IntegrationPluginError + Args: + disabled (str, optional): Loading path of disabled app. Defaults to None. + + Raises: + error: IntegrationPluginError """ from plugin.models import PluginConfig + def safe_reference(plugin, key: str, active: bool = True): + """Safe reference to plugin dicts.""" + if active: + self.plugins[key] = plugin + else: + # Deactivate plugin in db + if not settings.PLUGIN_TESTING: # pragma: no cover + plugin.db.active = False + plugin.db.save(no_reload=True) + self.plugins_inactive[key] = plugin.db + self.plugins_full[key] = plugin + logger.info('Starting plugin initialisation') # Initialize plugins - for plugin in self.plugin_modules: - # Check if package - was_packaged = getattr(plugin, 'is_package', False) - - # Check if activated + for plg in self.plugin_modules: # These checks only use attributes - never use plugin supplied functions -> that would lead to arbitrary code execution!! - plug_name = plugin.NAME - plug_key = plugin.SLUG if getattr(plugin, 'SLUG', None) else plug_name - plug_key = slugify(plug_key) # keys are slugs! + plg_name = plg.NAME + plg_key = slugify(plg.SLUG if getattr(plg, 'SLUG', None) else plg_name) # keys are slugs! + try: - plugin_db_setting, _ = PluginConfig.objects.get_or_create(key=plug_key, name=plug_name) + plg_db, _ = PluginConfig.objects.get_or_create(key=plg_key, name=plg_name) except (OperationalError, ProgrammingError) as error: # Exception if the database has not been migrated yet - check if test are running - raise if not if not settings.PLUGIN_TESTING: raise error # pragma: no cover - plugin_db_setting = None + plg_db = None except (IntegrityError) as error: # pragma: no cover - logger.error(f"Error initializing plugin: {error}") + logger.error(f"Error initializing plugin `{plg_name}`: {error}") + + # Append reference to plugin + plg.db = plg_db # Always activate if testing - if settings.PLUGIN_TESTING or (plugin_db_setting and plugin_db_setting.active): - # Check if the plugin was blocked -> threw an error - if disabled: - # option1: package, option2: file-based - if (plugin.__name__ == disabled) or (plugin.__module__ == disabled): - # Errors are bad so disable the plugin in the database - if not settings.PLUGIN_TESTING: # pragma: no cover - plugin_db_setting.active = False - plugin_db_setting.save(no_reload=True) - - # Add to inactive plugins so it shows up in the ui - self.plugins_inactive[plug_key] = plugin_db_setting - continue # continue -> the plugin is not loaded - - # Initialize package - # now we can be sure that an admin has activated the plugin - logger.info(f'Loading plugin {plug_name}') + if settings.PLUGIN_TESTING or (plg_db and plg_db.active): + # Check if the plugin was blocked -> threw an error; option1: package, option2: file-based + if disabled and ((plg.__name__ == disabled) or (plg.__module__ == disabled)): + safe_reference(plugin=plg, key=plg_key, active=False) + continue # continue -> the plugin is not loaded + # Initialize package - we can be sure that an admin has activated the plugin + logger.info(f'Loading plugin `{plg_name}`') try: - plugin = plugin() + plg_i: InvenTreePlugin = plg() + logger.info(f'Loaded plugin `{plg_name}`') except Exception as error: - # log error and raise it -> disable plugin - handle_error(error, log_name='init') + handle_error(error, log_name='init') # log error and raise it -> disable plugin - logger.debug(f'Loaded plugin {plug_name}') + # Safe extra attributes + plg_i.is_package = getattr(plg_i, 'is_package', False) + plg_i.pk = plg_db.pk if plg_db else None + plg_i.db = plg_db - plugin.is_package = was_packaged - - if plugin_db_setting: - plugin.pk = plugin_db_setting.pk - - # safe reference - self.plugins[plugin.slug] = plugin - else: - # save for later reference - self.plugins_inactive[plug_key] = plugin_db_setting # pragma: no cover + # Run version check for plugin + if (plg_i.MIN_VERSION or plg_i.MAX_VERSION) and not plg_i.check_version(): + safe_reference(plugin=plg_i, key=plg_key, active=False) + else: + safe_reference(plugin=plg_i, key=plg_key) + else: # pragma: no cover + safe_reference(plugin=plg, key=plg_key, active=False) def _activate_plugins(self, force_reload=False, full_reload: bool = False): """Run activation functions for all plugins. @@ -568,10 +587,10 @@ class PluginsRegistry: """ try: # for local path plugins - plugin_path = '.'.join(Path(plugin.path).relative_to(settings.BASE_DIR).parts) + plugin_path = '.'.join(plugin.path().relative_to(settings.BASE_DIR).parts) except ValueError: # pragma: no cover - # plugin is shipped as package - plugin_path = plugin.NAME + # plugin is shipped as package - extract plugin module name + plugin_path = plugin.__module__.split('.')[0] return plugin_path def deactivate_plugin_app(self): @@ -625,24 +644,25 @@ class PluginsRegistry: self.installed_apps = [] def _clean_registry(self): - # remove all plugins from registry - self.plugins = {} - self.plugins_inactive = {} + """Remove all plugins from registry.""" + self.plugins: Dict[str, InvenTreePlugin] = {} + self.plugins_inactive: Dict[str, InvenTreePlugin] = {} + self.plugins_full: Dict[str, InvenTreePlugin] = {} def _update_urls(self): - from InvenTree.urls import frontendpatterns as urlpatterns + from InvenTree.urls import frontendpatterns as urlpattern from InvenTree.urls import urlpatterns as global_pattern from plugin.urls import get_plugin_urls - for index, a in enumerate(urlpatterns): - if hasattr(a, 'app_name'): - if a.app_name == 'admin': - urlpatterns[index] = re_path(r'^admin/', admin.site.urls, name='inventree-admin') - elif a.app_name == 'plugin': - urlpatterns[index] = get_plugin_urls() + for index, url in enumerate(urlpattern): + if hasattr(url, 'app_name'): + if url.app_name == 'admin': + urlpattern[index] = re_path(r'^admin/', admin.site.urls, name='inventree-admin') + elif url.app_name == 'plugin': + urlpattern[index] = get_plugin_urls() - # replace frontendpatterns - global_pattern[0] = re_path('', include(urlpatterns)) + # Replace frontendpatterns + global_pattern[0] = re_path('', include(urlpattern)) clear_url_caches() def _reload_apps(self, force_reload: bool = False, full_reload: bool = False): @@ -678,7 +698,7 @@ class PluginsRegistry: # endregion -registry = PluginsRegistry() +registry: PluginsRegistry = PluginsRegistry() def call_function(plugin_name, function_name, *args, **kwargs): diff --git a/InvenTree/plugin/samples/integration/version.py b/InvenTree/plugin/samples/integration/version.py new file mode 100644 index 0000000000..47314f3df6 --- /dev/null +++ b/InvenTree/plugin/samples/integration/version.py @@ -0,0 +1,9 @@ +"""Sample plugin for versioning.""" +from plugin import InvenTreePlugin + + +class VersionPlugin(InvenTreePlugin): + """A small version sample.""" + + NAME = "version" + MAX_VERSION = '0.1.0' diff --git a/InvenTree/plugin/template.py b/InvenTree/plugin/template.py index c16135a7a3..01e57c1958 100644 --- a/InvenTree/plugin/template.py +++ b/InvenTree/plugin/template.py @@ -1,7 +1,5 @@ """Load templates for loaded plugins.""" -from pathlib import Path - from django.template.loaders.filesystem import Loader as FilesystemLoader from plugin import registry @@ -26,8 +24,8 @@ class PluginTemplateLoader(FilesystemLoader): template_dirs = [] for plugin in registry.plugins.values(): - new_path = Path(plugin.path) / dirname - if Path(new_path).is_dir(): + new_path = plugin.path().joinpath(dirname) + if new_path.is_dir(): template_dirs.append(new_path) return tuple(template_dirs) diff --git a/InvenTree/plugin/test_plugin.py b/InvenTree/plugin/test_plugin.py index 37862b5545..76ddc46b68 100644 --- a/InvenTree/plugin/test_plugin.py +++ b/InvenTree/plugin/test_plugin.py @@ -1,8 +1,14 @@ """Unit tests for plugins.""" +import os +import shutil +import subprocess +import tempfile from datetime import datetime +from pathlib import Path +from unittest import mock -from django.test import TestCase +from django.test import TestCase, override_settings import plugin.templatetags.plugin_extras as plugin_tags from plugin import InvenTreePlugin, registry @@ -94,6 +100,14 @@ class InvenTreePluginTests(TestCase): self.plugin_name = NameInvenTreePlugin() self.plugin_sample = SampleIntegrationPlugin() + class VersionInvenTreePlugin(InvenTreePlugin): + NAME = 'Version' + + MIN_VERSION = '0.1.0' + MAX_VERSION = '0.1.3' + + self.plugin_version = VersionInvenTreePlugin() + def test_basic_plugin_init(self): """Check if a basic plugin intis.""" self.assertEqual(self.plugin.NAME, '') @@ -162,3 +176,81 @@ class InvenTreePluginTests(TestCase): self.assertEqual(self.plugin_old.slug, 'old') # check default value is used self.assertEqual(self.plugin_old.get_meta_value('ABC', 'ABCD', '123'), '123') + + def test_version(self): + """Test Version checks""" + + self.assertFalse(self.plugin_version.check_version([0, 0, 3])) + self.assertTrue(self.plugin_version.check_version([0, 1, 0])) + self.assertFalse(self.plugin_version.check_version([0, 1, 4])) + + plug = registry.plugins_full.get('version') + self.assertEqual(plug.is_active(), False) + + +class RegistryTests(TestCase): + """Tests for registry loading methods.""" + + def mockDir(self) -> None: + """Returns path to mock dir""" + return str(Path(__file__).parent.joinpath('mock').absolute()) + + def run_package_test(self, directory): + """General runner for testing package based installs.""" + + # Patch enviroment varible to add dir + envs = {'INVENTREE_PLUGIN_TEST_DIR': directory} + with mock.patch.dict(os.environ, envs): + # Reload to redicsover plugins + registry.reload_plugins(full_reload=True) + + # Depends on the meta set in InvenTree/plugin/mock/simple:SimplePlugin + plg = registry.get_plugin('simple') + self.assertEqual(plg.slug, 'simple') + self.assertEqual(plg.human_name, 'SimplePlugin') + + def test_custom_loading(self): + """Test if data in custom dir is loaded correctly.""" + test_dir = Path('plugin_test_dir') + + # Patch env + envs = {'INVENTREE_PLUGIN_TEST_DIR': 'plugin_test_dir'} + with mock.patch.dict(os.environ, envs): + # Run plugin directory discovery again + registry.plugin_dirs() + + # Check the directory was created + self.assertTrue(test_dir.exists()) + + # Clean folder up + shutil.rmtree(test_dir, ignore_errors=True) + + def test_subfolder_loading(self): + """Test that plugins in subfolders get loaded.""" + self.run_package_test(self.mockDir()) + + def test_folder_loading(self): + """Test that plugins in folders outside of BASE_DIR get loaded.""" + + # Run in temporary directory -> always a new random name + with tempfile.TemporaryDirectory() as tmp: + # Fill directory with sample data + new_dir = Path(tmp).joinpath('mock') + shutil.copytree(self.mockDir(), new_dir) + + # Run tests + self.run_package_test(str(new_dir)) + + @override_settings(PLUGIN_TESTING_SETUP=True) + def test_package_loading(self): + """Test that package distributed plugins work.""" + # Install sample package + subprocess.check_output('pip install inventree-zapier'.split()) + + # Reload to discover plugin + registry.reload_plugins(full_reload=True) + + # Test that plugin was installed + plg = registry.get_plugin('zapier') + self.assertEqual(plg.slug, 'zapier') + self.assertEqual(plg.name, 'inventree_zapier') diff --git a/InvenTree/report/api.py b/InvenTree/report/api.py index c97026361d..738c7b859b 100644 --- a/InvenTree/report/api.py +++ b/InvenTree/report/api.py @@ -233,17 +233,12 @@ class ReportPrintMixin: pages = [] try: + for output in outputs: + doc = output.get_document() + for page in doc.pages: + pages.append(page) - if len(outputs) > 1: - # If more than one output is generated, merge them into a single file - for output in outputs: - doc = output.get_document() - for page in doc.pages: - pages.append(page) - - pdf = outputs[0].get_document().copy(pages).write_pdf() - else: - pdf = outputs[0].get_document().write_pdf() + pdf = outputs[0].get_document().copy(pages).write_pdf() except TemplateDoesNotExist as e: diff --git a/InvenTree/report/templatetags/report.py b/InvenTree/report/templatetags/report.py index cde637cfb4..ac848081b9 100644 --- a/InvenTree/report/templatetags/report.py +++ b/InvenTree/report/templatetags/report.py @@ -5,7 +5,7 @@ import os from django import template from django.conf import settings -from django.utils.safestring import mark_safe +from django.utils.safestring import SafeString, mark_safe import InvenTree.helpers from common.models import InvenTreeSetting @@ -28,11 +28,15 @@ def asset(filename): Raises: FileNotFoundError if file does not exist """ + if type(filename) is SafeString: + # Prepend an empty string to enforce 'stringiness' + filename = '' + filename + # If in debug mode, return URL to the image, not a local file debug_mode = InvenTreeSetting.get_setting('REPORT_DEBUG_MODE') # Test if the file actually exists - full_path = settings.MEDIA_ROOT.joinpath('report', 'assets', filename) + full_path = settings.MEDIA_ROOT.joinpath('report', 'assets', filename).resolve() if not full_path.exists() or not full_path.is_file(): raise FileNotFoundError(f"Asset file '{filename}' does not exist") @@ -55,6 +59,10 @@ def uploaded_image(filename, replace_missing=True, replacement_file='blank_image A fully qualified path to the image """ + if type(filename) is SafeString: + # Prepend an empty string to enforce 'stringiness' + filename = '' + filename + # If in debug mode, return URL to the image, not a local file debug_mode = InvenTreeSetting.get_setting('REPORT_DEBUG_MODE') diff --git a/InvenTree/report/tests.py b/InvenTree/report/tests.py index fe45b56446..36e5482958 100644 --- a/InvenTree/report/tests.py +++ b/InvenTree/report/tests.py @@ -9,6 +9,7 @@ from django.core.cache import cache from django.http.response import StreamingHttpResponse from django.test import TestCase from django.urls import reverse +from django.utils.safestring import SafeString from PIL import Image @@ -49,6 +50,10 @@ class ReportTagTest(TestCase): asset = report_tags.asset('test.txt') self.assertEqual(asset, '/media/report/assets/test.txt') + # Ensure that a 'safe string' also works + asset = report_tags.asset(SafeString('test.txt')) + self.assertEqual(asset, '/media/report/assets/test.txt') + self.debug_mode(False) asset = report_tags.asset('test.txt') self.assertEqual(asset, f'file://{asset_dir}/test.txt') @@ -87,10 +92,17 @@ class ReportTagTest(TestCase): img = report_tags.uploaded_image('part/images/test.jpg') self.assertEqual(img, '/media/part/images/test.jpg') + # Ensure that a 'safe string' also works + img = report_tags.uploaded_image(SafeString('part/images/test.jpg')) + self.assertEqual(img, '/media/part/images/test.jpg') + self.debug_mode(False) img = report_tags.uploaded_image('part/images/test.jpg') self.assertEqual(img, f'file://{img_path.joinpath("test.jpg")}') + img = report_tags.uploaded_image(SafeString('part/images/test.jpg')) + self.assertEqual(img, f'file://{img_path.joinpath("test.jpg")}') + def test_part_image(self): """Unit tests for the 'part_image' tag""" diff --git a/InvenTree/stock/migrations/0083_stocklocation_icon.py b/InvenTree/stock/migrations/0083_stocklocation_icon.py new file mode 100644 index 0000000000..7b19658157 --- /dev/null +++ b/InvenTree/stock/migrations/0083_stocklocation_icon.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.15 on 2022-08-15 08:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0082_alter_stockitem_link'), + ] + + operations = [ + migrations.AddField( + model_name='stocklocation', + name='icon', + field=models.CharField(blank=True, help_text='Icon (optional)', max_length=100, verbose_name='Icon'), + ), + ] diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index b23e72117d..d015b09aae 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -78,6 +78,13 @@ class StockLocation(MetadataMixin, InvenTreeTree): """Return API url.""" return reverse('api-location-list') + icon = models.CharField( + blank=True, + max_length=100, + verbose_name=_("Icon"), + help_text=_("Icon (optional)") + ) + owner = models.ForeignKey(Owner, on_delete=models.SET_NULL, blank=True, null=True, verbose_name=_('Owner'), help_text=_('Select Owner'), diff --git a/InvenTree/stock/serializers.py b/InvenTree/stock/serializers.py index 31df615989..871df5a612 100644 --- a/InvenTree/stock/serializers.py +++ b/InvenTree/stock/serializers.py @@ -46,7 +46,6 @@ class LocationBriefSerializer(InvenTree.serializers.InvenTreeModelSerializer): class StockItemSerializerBrief(InvenTree.serializers.InvenTreeModelSerializer): """Brief serializers for a StockItem.""" - location_name = serializers.CharField(source='location', read_only=True) part_name = serializers.CharField(source='part.full_name', read_only=True) quantity = InvenTreeDecimalField() @@ -60,7 +59,6 @@ class StockItemSerializerBrief(InvenTree.serializers.InvenTreeModelSerializer): 'part_name', 'pk', 'location', - 'location_name', 'quantity', 'serial', 'supplier_part', @@ -570,6 +568,7 @@ class LocationTreeSerializer(InvenTree.serializers.InvenTreeModelSerializer): 'pk', 'name', 'parent', + 'icon', ] @@ -607,6 +606,7 @@ class LocationSerializer(InvenTree.serializers.InvenTreeModelSerializer): 'pathstring', 'items', 'owner', + 'icon', ] diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html index d58086fd84..8a1388e636 100644 --- a/InvenTree/stock/templates/stock/item_base.html +++ b/InvenTree/stock/templates/stock/item_base.html @@ -75,24 +75,20 @@
    {% endif %} @@ -618,37 +613,7 @@ $("#stock-convert").click(function() { }); {% endif %} -{% if item.in_stock %} -$("#stock-assign-to-customer").click(function() { - - inventreeGet('{% url "api-stock-detail" item.pk %}', {}, { - success: function(response) { - assignStockToCustomer( - [response], - { - success: function() { - location.reload(); - }, - } - ); - } - }); -}); - -$("#stock-move").click(function() { - itemAdjust("move"); -}); - -$("#stock-count").click(function() { - itemAdjust('count'); -}); - -$('#stock-remove').click(function() { - itemAdjust('take'); -}); - -{% else %} - +{% if item.customer %} $("#stock-return-from-customer").click(function() { constructForm('{% url "api-stock-item-return" item.pk %}', { @@ -666,6 +631,37 @@ $("#stock-return-from-customer").click(function() { }); }); +{% else %} +$("#stock-assign-to-customer").click(function() { + + inventreeGet('{% url "api-stock-detail" item.pk %}', {}, { + success: function(response) { + assignStockToCustomer( + [response], + { + success: function() { + location.reload(); + }, + } + ); + } + }); +}); +{% endif %} + +{% if item.can_adjust_location %} + +$("#stock-move").click(function() { + itemAdjust("move"); +}); + +$("#stock-count").click(function() { + itemAdjust('count'); +}); + +$('#stock-remove').click(function() { + itemAdjust('take'); +}); {% endif %} diff --git a/InvenTree/stock/templates/stock/location.html b/InvenTree/stock/templates/stock/location.html index 5fd8312b2f..13f153fc65 100644 --- a/InvenTree/stock/templates/stock/location.html +++ b/InvenTree/stock/templates/stock/location.html @@ -14,7 +14,12 @@ {% block heading %} {% if location %} -{% trans "Stock Location" %}: {{ location.name }} +{% trans "Stock Location" %}: +{% settings_value "STOCK_LOCATION_DEFAULT_ICON" as default_icon %} +{% if location.icon or default_icon %} + +{% endif %} +{{ location.name }} {% else %} {% trans "Stock" %} {% endif %} @@ -380,7 +385,8 @@ node.href = `/stock/location/${node.pk}/`; return node; - } + }, + defaultIcon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }); {% endblock %} diff --git a/InvenTree/stock/test_views.py b/InvenTree/stock/test_views.py index f54b188dcd..acf1626136 100644 --- a/InvenTree/stock/test_views.py +++ b/InvenTree/stock/test_views.py @@ -31,6 +31,57 @@ class StockListTest(StockViewTestCase): self.assertEqual(response.status_code, 200) +class StockDetailTest(StockViewTestCase): + """Unit test for the 'stock detail' page""" + + def test_basic_info(self): + """Test that basic stock item info is rendered""" + + url = reverse('stock-item-detail', kwargs={'pk': 1}) + + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + + html = str(response.content) + + # Part name + self.assertIn('Stock Item: M2x4 LPHS', html) + + # Quantity + self.assertIn('
    Available Quantity
    ', html) + self.assertIn('
    4000
    ', html) + + # Batch code + self.assertIn('Batch', html) + self.assertIn('B123', html) + + # Actions to check + actions = [ + "id=\\\'stock-count\\\' title=\\\'Count stock\\\'", + "id=\\\'stock-add\\\' title=\\\'Add stock\\\'", + "id=\\\'stock-remove\\\' title=\\\'Remove stock\\\'", + "id=\\\'stock-move\\\' title=\\\'Transfer stock\\\'", + "id=\\\'stock-duplicate\\\'", + "id=\\\'stock-edit\\\'", + "id=\\\'stock-delete\\\'", + ] + + # Initially we should not have any of the required permissions + for act in actions: + self.assertNotIn(act, html) + + # Give the user all the permissions + self.assignRole('stock.add') + self.assignRole('stock.change') + self.assignRole('stock.delete') + + response = self.client.get(url) + html = str(response.content) + + for act in actions: + self.assertIn(act, html) + + class StockOwnershipTest(StockViewTestCase): """Tests for stock ownership views.""" diff --git a/InvenTree/templates/InvenTree/search.html b/InvenTree/templates/InvenTree/search.html index eb22cc0889..4596fb9f7f 100644 --- a/InvenTree/templates/InvenTree/search.html +++ b/InvenTree/templates/InvenTree/search.html @@ -33,6 +33,8 @@ }); } + var search_text = sanitizeInputString("{{ query|escapejs }}"); + function addItem(label, title, icon, options) { // Construct a "badge" to add to the sidebar item @@ -85,7 +87,7 @@ "{% url 'api-part-list' %}", { params: { - original_search: "{{ query }}", + original_search: search_text, }, checkbox: false, disableFilters: true, @@ -96,7 +98,7 @@ loadPartCategoryTable($("#table-category"), { params: { - original_search: "{{ query }}", + original_search: search_text, } }); @@ -107,7 +109,7 @@ "{% url 'api-manufacturer-part-list' %}", { params: { - original_search: "{{ query }}", + original_search: search_text, part_detail: true, supplier_detail: true, manufacturer_detail: true @@ -122,7 +124,7 @@ "{% url 'api-supplier-part-list' %}", { params: { - original_search: "{{ query }}", + original_search: search_text, part_detail: true, supplier_detail: true, manufacturer_detail: true @@ -141,7 +143,7 @@ loadBuildTable('#table-build-order', { locale: '{{ request.LANGUAGE_CODE }}', params: { - original_search: '{{ query }}', + original_search: search_text, } }); @@ -156,7 +158,7 @@ filterKey: 'stocksearch', url: "{% url 'api-stock-list' %}", params: { - original_search: "{{ query }}", + original_search: search_text, part_detail: true, location_detail: true } @@ -167,7 +169,7 @@ loadStockLocationTable($("#table-location"), { filterKey: 'locationsearch', params: { - original_search: "{{ query }}", + original_search: search_text, }, }); @@ -180,8 +182,8 @@ loadCompanyTable('#table-manufacturer', "{% url 'api-company-list' %}", { params: { - original_search: "{{ query }}", - is_manufacturer: "true", + original_search: search_text, + is_manufacturer: true, } }); @@ -190,8 +192,8 @@ loadCompanyTable('#table-supplier', "{% url 'api-company-list' %}", { params: { - original_search: "{{ query }}", - is_supplier: "true", + original_search: search_text, + is_supplier: true, } }); @@ -199,7 +201,7 @@ loadPurchaseOrderTable('#table-purchase-order', { params: { - original_search: '{{ query }}', + original_search: search_text, } }); @@ -210,8 +212,8 @@ loadCompanyTable('#table-customer', "{% url 'api-company-list' %}", { params: { - original_search: "{{ query }}", - is_customer: "true", + original_search: search_text, + is_customer: true, } }); @@ -219,7 +221,7 @@ loadSalesOrderTable('#table-sales-orders', { params: { - original_search: '{{ query }}', + original_search: search_text, } }); @@ -230,7 +232,7 @@ enableSidebar( 'search', { - hide_toggle: 'true', + hide_toggle: true, } ); diff --git a/InvenTree/templates/InvenTree/settings/part.html b/InvenTree/templates/InvenTree/settings/part.html index 1004113dc6..aea734d5a4 100644 --- a/InvenTree/templates/InvenTree/settings/part.html +++ b/InvenTree/templates/InvenTree/settings/part.html @@ -36,6 +36,8 @@ {% include "InvenTree/settings/setting.html" with key="PART_INTERNAL_PRICE" %} {% include "InvenTree/settings/setting.html" with key="PART_BOM_USE_INTERNAL_PRICE" %} + + {% include "InvenTree/settings/setting.html" with key="PART_CATEGORY_DEFAULT_ICON" icon="fa-icons" %} diff --git a/InvenTree/templates/InvenTree/settings/plugin.html b/InvenTree/templates/InvenTree/settings/plugin.html index 4e2310832b..8051563d24 100644 --- a/InvenTree/templates/InvenTree/settings/plugin.html +++ b/InvenTree/templates/InvenTree/settings/plugin.html @@ -25,6 +25,8 @@ {% include "InvenTree/settings/setting.html" with key="ENABLE_PLUGINS_NAVIGATION" icon="fa-sitemap" %} {% include "InvenTree/settings/setting.html" with key="ENABLE_PLUGINS_APP" icon="fa-rocket" %} {% include "InvenTree/settings/setting.html" with key="PLUGIN_ON_STARTUP" %} + + {% include "InvenTree/settings/setting.html" with key="PLUGIN_CHECK_SIGNATURES" %}
    diff --git a/InvenTree/templates/InvenTree/settings/plugin_settings.html b/InvenTree/templates/InvenTree/settings/plugin_settings.html index 2ba3a401b2..0d06ead680 100644 --- a/InvenTree/templates/InvenTree/settings/plugin_settings.html +++ b/InvenTree/templates/InvenTree/settings/plugin_settings.html @@ -112,6 +112,9 @@ {% trans "Commit Message" %}{{ plugin.package.message }}{% include "clip.html" %} {% endif %} + + {% settings_value "PLUGIN_CHECK_SIGNATURES" as signatures %} + {% if signatures %} {% trans "Sign Status" %} @@ -122,6 +125,7 @@ {% trans "Sign Key" %} {{ plugin.package.key }}{% include "clip.html" %} + {% endif %} diff --git a/InvenTree/templates/InvenTree/settings/setting.html b/InvenTree/templates/InvenTree/settings/setting.html index 0bc099f8a2..35aeb97cdf 100644 --- a/InvenTree/templates/InvenTree/settings/setting.html +++ b/InvenTree/templates/InvenTree/settings/setting.html @@ -24,11 +24,11 @@ {% if setting.is_bool %}
    - +
    {% else %}
    - + {% if setting.value %} {% if setting.is_choice %} {{ setting.as_choice }} diff --git a/InvenTree/templates/InvenTree/settings/settings.html b/InvenTree/templates/InvenTree/settings/settings.html index de3a36b9d1..1eec787ce2 100644 --- a/InvenTree/templates/InvenTree/settings/settings.html +++ b/InvenTree/templates/InvenTree/settings/settings.html @@ -345,16 +345,23 @@ $("#param-table").inventreeTable({ { field: 'name', title: '{% trans "Name" %}', - sortable: 'true', + sortable: true, }, { field: 'units', title: '{% trans "Units" %}', - sortable: 'true', + sortable: true, + switchable: true, + }, + { + field: 'description', + title: '{% trans "Description" %}', + sortable: false, + switchable: true, }, { formatter: function(value, row, index, field) { - var bEdit = ""; + var bEdit = ""; var bDel = ""; var html = "
    " + bEdit + bDel + "
    "; @@ -370,6 +377,7 @@ $("#new-param").click(function() { fields: { name: {}, units: {}, + description: {}, }, method: 'POST', title: '{% trans "Create Part Parameter Template" %}', @@ -389,6 +397,7 @@ $("#param-table").on('click', '.template-edit', function() { fields: { name: {}, units: {}, + description: {}, }, title: '{% trans "Edit Part Parameter Template" %}', onSuccess: function() { diff --git a/InvenTree/templates/InvenTree/settings/stock.html b/InvenTree/templates/InvenTree/settings/stock.html index f0cd403d68..e897b13ea7 100644 --- a/InvenTree/templates/InvenTree/settings/stock.html +++ b/InvenTree/templates/InvenTree/settings/stock.html @@ -17,6 +17,7 @@ {% include "InvenTree/settings/setting.html" with key="STOCK_ALLOW_EXPIRED_SALE" icon="fa-truck" %} {% include "InvenTree/settings/setting.html" with key="STOCK_ALLOW_EXPIRED_BUILD" icon="fa-tools" %} {% include "InvenTree/settings/setting.html" with key="STOCK_OWNERSHIP_CONTROL" icon="fa-users" %} + {% include "InvenTree/settings/setting.html" with key="STOCK_LOCATION_DEFAULT_ICON" icon="fa-icons" %} {% endblock %} diff --git a/InvenTree/templates/account/base.html b/InvenTree/templates/account/base.html index 4ac646b717..518ab0798b 100644 --- a/InvenTree/templates/account/base.html +++ b/InvenTree/templates/account/base.html @@ -49,10 +49,8 @@ {% endblock %} - - + +
    diff --git a/InvenTree/templates/js/dynamic/nav.js b/InvenTree/templates/js/dynamic/nav.js index e22ea19388..05fc50abd8 100644 --- a/InvenTree/templates/js/dynamic/nav.js +++ b/InvenTree/templates/js/dynamic/nav.js @@ -216,6 +216,7 @@ function enableBreadcrumbTree(options) { enableLinks: true, expandIcon: 'fas fa-chevron-right', collapseIcon: 'fa fa-chevron-down', + nodeIcon: options.defaultIcon, }); } diff --git a/InvenTree/templates/js/dynamic/settings.js b/InvenTree/templates/js/dynamic/settings.js index 4d4434c0c5..ab9ac30397 100644 --- a/InvenTree/templates/js/dynamic/settings.js +++ b/InvenTree/templates/js/dynamic/settings.js @@ -118,15 +118,16 @@ function editSetting(key, options={}) { }, onSuccess: function(response) { - var setting = response.key; + var setting_pk = response.pk; + var setting_typ = response.typ; if (reload_required) { location.reload(); } else if (response.type == 'boolean') { var enabled = response.value.toString().toLowerCase() == 'true'; - $(`#setting-value-${setting}`).prop('checked', enabled); + $(`#setting-value-${setting_pk}-${setting_typ}`).prop('checked', enabled); } else { - $(`#setting-value-${setting}`).html(response.value); + $(`#setting-value-${setting_pk}-${setting_typ}`).html(response.value); } } }); diff --git a/InvenTree/templates/js/translated/bom.js b/InvenTree/templates/js/translated/bom.js index dad17074dd..3d03e20c94 100644 --- a/InvenTree/templates/js/translated/bom.js +++ b/InvenTree/templates/js/translated/bom.js @@ -519,7 +519,6 @@ function bomSubstitutesDialog(bom_item_id, substitutes, options={}) { ${part.description} - ${part.stock} ${buttons} `; @@ -552,7 +551,6 @@ function bomSubstitutesDialog(bom_item_id, substitutes, options={}) { {% trans "Part" %} {% trans "Description" %} - {% trans "Stock" %} @@ -1051,7 +1049,7 @@ function loadBomTable(table, options={}) { available += row.on_order; can_build = available / row.quantity; - text += ``; + text += ``; } return text; @@ -1070,10 +1068,10 @@ function loadBomTable(table, options={}) { }); if (can_build == null) { - can_build = '-'; + return '-'; + } else { + return formatDecimal(can_build, 2); } - - return can_build; }, sorter: function(valA, valB, rowA, rowB) { // Function to sort the "can build" quantity diff --git a/InvenTree/templates/js/translated/build.js b/InvenTree/templates/js/translated/build.js index 223427e68e..d9a74a725b 100644 --- a/InvenTree/templates/js/translated/build.js +++ b/InvenTree/templates/js/translated/build.js @@ -23,6 +23,7 @@ cancelBuildOrder, completeBuildOrder, createBuildOutput, + duplicateBuildOrder, editBuildOrder, loadAllocationTable, loadBuildOrderAllocationTable, @@ -75,7 +76,9 @@ function buildFormFields() { }; } - +/* + * Edit an existing BuildOrder via the API + */ function editBuildOrder(pk) { var fields = buildFormFields(); @@ -87,6 +90,10 @@ function editBuildOrder(pk) { }); } + +/* + * Create a new build order via an API form + */ function newBuildOrder(options={}) { /* Launch modal form to create a new BuildOrder. */ @@ -113,8 +120,13 @@ function newBuildOrder(options={}) { fields.sales_order.value = options.sales_order; } + if (options.data) { + delete options.data.pk; + } + constructForm(`/api/build/`, { fields: fields, + data: options.data, follow: true, method: 'POST', title: '{% trans "Create Build Order" %}', @@ -123,6 +135,26 @@ function newBuildOrder(options={}) { } +/* + * Duplicate an existing build order. + */ +function duplicateBuildOrder(build_id, options={}) { + + inventreeGet(`/api/build/${build_id}/`, {}, { + success: function(data) { + // Clear out data we do not want to be duplicated + delete data['pk']; + delete data['issued_by']; + delete data['reference']; + + options.data = data; + newBuildOrder(options); + } + }); +} + + + /* Construct a form to cancel a build order */ function cancelBuildOrder(build_id, options={}) { @@ -699,6 +731,7 @@ function loadBuildOrderAllocationTable(table, options={}) { options.params['part_detail'] = true; options.params['build_detail'] = true; options.params['location_detail'] = true; + options.params['stock_detail'] = true; var filters = loadTableFilters('buildorderallocation'); @@ -1123,7 +1156,7 @@ function loadBuildOutputTable(build_info, options={}) { uniqueId: 'pk', name: 'build-outputs', sortable: true, - search: false, + search: true, sidePagination: 'client', detailView: bom_items.length > 0, detailFilter: function(index, row) { @@ -1686,9 +1719,10 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { field: 'location', title: '{% trans "Location" %}', formatter: function(value, row) { - if (row.stock_item_detail.location) { - var text = row.stock_item_detail.location_name; - var url = `/stock/location/${row.stock_item_detail.location}/`; + + if (row.location && row.location_detail) { + var text = row.location_detail.name; + var url = `/stock/location/${row.location}/`; return renderLink(text, url); } else { @@ -1799,6 +1833,7 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { var available_stock = availableQuantity(row); var required = requiredQuantity(row); + var allocated = allocatedQuantity(row); var text = ''; @@ -1806,14 +1841,20 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { text += `${available_stock}`; } - if (available_stock < required) { - text += ``; + var icons = ''; + + if (available_stock < (required - allocated)) { + icons += ``; } else { - text += ``; + icons += ``; + } + + if (row.on_order && row.on_order > 0) { + icons += ``; } if (available_stock <= 0) { - text += `{% trans "No Stock Available" %}`; + icons += `{% trans "No Stock Available" %}`; } else { var extra = ''; if ((substitute_stock > 0) && (variant_stock > 0)) { @@ -1825,11 +1866,11 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { } if (extra) { - text += ``; + icons += ``; } } - return renderLink(text, url); + return renderLink(text, url) + icons; }, sorter: function(valA, valB, rowA, rowB) { diff --git a/InvenTree/templates/js/translated/forms.js b/InvenTree/templates/js/translated/forms.js index 5c0daa8fd0..093a471cca 100644 --- a/InvenTree/templates/js/translated/forms.js +++ b/InvenTree/templates/js/translated/forms.js @@ -328,8 +328,6 @@ function constructForm(url, options) { constructFormBody({}, options); } - options.fields = options.fields || {}; - // Save the URL options.url = url; @@ -351,6 +349,13 @@ function constructForm(url, options) { // Extract any custom 'context' information from the OPTIONS data options.context = OPTIONS.context || {}; + // Construct fields (can be a static parameter or a function) + if (options.fieldsFunction) { + options.fields = options.fieldsFunction(options); + } else { + options.fields = options.fields || {}; + } + /* * Determine what "type" of form we want to construct, * based on the requested action. @@ -1007,6 +1012,11 @@ function getFormFieldValue(name, field={}, options={}) { value = null; } break; + case 'string': + case 'url': + case 'email': + value = sanitizeInputString(el.val()); + break; default: value = el.val(); break; diff --git a/InvenTree/templates/js/translated/helpers.js b/InvenTree/templates/js/translated/helpers.js index 67a6ccae7f..5d0aed8bce 100644 --- a/InvenTree/templates/js/translated/helpers.js +++ b/InvenTree/templates/js/translated/helpers.js @@ -10,6 +10,7 @@ makeIconButton, makeProgressBar, renderLink, + sanitizeInputString, select2Thumbnail, setupNotesField, thumbnailImage @@ -326,3 +327,24 @@ function setupNotesField(element, url, options={}) { }); } } + + +/* + * Sanitize a string provided by the user from an input field, + * e.g. data form or search box + * + * - Remove leading / trailing whitespace + * - Remove hidden control characters + */ +function sanitizeInputString(s, options={}) { + + // Remove ASCII control characters + s = s.replace(/[\x01-\x1F]+/g, ''); + + // Remove Unicode control characters + s = s.replace(/[\p{C}]+/gu, ''); + + s = s.trim(); + + return s; +} diff --git a/InvenTree/templates/js/translated/label.js b/InvenTree/templates/js/translated/label.js index c95962e526..ad1f8e791f 100644 --- a/InvenTree/templates/js/translated/label.js +++ b/InvenTree/templates/js/translated/label.js @@ -44,7 +44,7 @@ function printLabels(url, plugin=null) { } }); } else { - window.location.href = url; + window.open(url); } } diff --git a/InvenTree/templates/js/translated/order.js b/InvenTree/templates/js/translated/order.js index 221c0c1d19..b9cd3b5a65 100644 --- a/InvenTree/templates/js/translated/order.js +++ b/InvenTree/templates/js/translated/order.js @@ -24,12 +24,15 @@ cancelPurchaseOrder, cancelSalesOrder, completePurchaseOrder, + completeSalesOrder, completeShipment, completePendingShipments, createPurchaseOrder, createPurchaseOrderLineItem, createSalesOrder, createSalesOrderShipment, + duplicatePurchaseOrder, + editPurchaseOrder, editPurchaseOrderLineItem, exportOrder, issuePurchaseOrder, @@ -280,6 +283,17 @@ function completePurchaseOrder(order_id, options={}) { method: 'POST', title: '{% trans "Complete Purchase Order" %}', confirm: true, + fieldsFunction: function(opts) { + var fields = { + accept_incomplete: {}, + }; + + if (opts.context.is_complete) { + delete fields['accept_incomplete']; + } + + return fields; + }, preFormContent: function(opts) { var html = ` @@ -371,6 +385,59 @@ function issuePurchaseOrder(order_id, options={}) { } +/* + * Launches a modal form to mark a SalesOrder as "complete" + */ +function completeSalesOrder(order_id, options={}) { + + constructForm( + `/api/order/so/${order_id}/complete/`, + { + method: 'POST', + title: '{% trans "Complete Sales Order" %}', + confirm: true, + fieldsFunction: function(opts) { + var fields = { + accept_incomplete: {}, + }; + + if (opts.context.is_complete) { + delete fields['accept_incomplete']; + } + + return fields; + }, + preFormContent: function(opts) { + var html = ` +
    + {% trans "Mark this order as complete?" %} +
    `; + + if (opts.context.pending_shipments) { + html += ` +
    + {% trans "Order cannot be completed as there are incomplete shipments" %}
    +
    `; + } + + if (!opts.context.is_complete) { + html += ` +
    + {% trans "This order has line items which have not been completed." %}
    + {% trans "Completing this order means that the order and line items will no longer be editable." %} +
    `; + } + + return html; + }, + onSuccess: function(response) { + handleFormSuccess(response, options); + } + } + ); +} + + /* * Launches a modal form to mark a SalesOrder as "cancelled" */ @@ -493,41 +560,123 @@ function createSalesOrder(options={}) { }); } + +/* + * Construct a set of fields for a purchase order form + */ +function purchaseOrderFields(options={}) { + + var fields = { + reference: { + icon: 'fa-hashtag', + }, + supplier: { + icon: 'fa-building', + secondary: { + title: '{% trans "Add Supplier" %}', + fields: function() { + var fields = companyFormFields(); + + fields.is_supplier.value = true; + + return fields; + } + } + }, + description: {}, + supplier_reference: {}, + target_date: { + icon: 'fa-calendar-alt', + }, + link: { + icon: 'fa-link', + }, + responsible: { + icon: 'fa-user', + }, + }; + + if (options.supplier) { + fields.supplier.value = options.supplier; + } + + if (options.hide_supplier) { + fields.supplier.hidden = true; + } + + // Add fields for order duplication (only if required) + if (options.duplicate_order) { + fields.duplicate_order = { + value: options.duplicate_order, + group: 'duplicate', + required: 'true', + type: 'related field', + model: 'purchaseorder', + filters: { + supplier_detail: true, + }, + api_url: '{% url "api-po-list" %}', + label: '{% trans "Purchase Order" %}', + help_text: '{% trans "Select purchase order to duplicate" %}', + }; + + fields.duplicate_line_items = { + value: true, + group: 'duplicate', + type: 'boolean', + label: '{% trans "Duplicate Line Items" %}', + help_text: '{% trans "Duplicate all line items from the selected order" %}', + }; + + fields.duplicate_extra_lines = { + value: true, + group: 'duplicate', + type: 'boolean', + label: '{% trans "Duplicate Extra Lines" %}', + help_text: '{% trans "Duplicate extra line items from the selected order" %}', + }; + } + + return fields; +} + + +/* + * Edit an existing PurchaseOrder + */ +function editPurchaseOrder(pk, options={}) { + + var fields = purchaseOrderFields(options); + + constructForm(`/api/order/po/${pk}/`, { + fields: fields, + title: '{% trans "Edit Purchase Order" %}', + onSuccess: function(response) { + handleFormSuccess(response, options); + } + }); +} + + // Create a new PurchaseOrder function createPurchaseOrder(options={}) { + var fields = purchaseOrderFields(options); + + var groups = {}; + + if (options.duplicate_order) { + groups.duplicate = { + title: '{% trans "Duplication Options" %}', + collapsible: false, + }; + }; + constructForm('{% url "api-po-list" %}', { method: 'POST', - fields: { - reference: { - icon: 'fa-hashtag', - }, - supplier: { - icon: 'fa-building', - value: options.supplier, - secondary: { - title: '{% trans "Add Supplier" %}', - fields: function() { - var fields = companyFormFields(); - - fields.is_supplier.value = true; - - return fields; - } - } - }, - description: {}, - supplier_reference: {}, - target_date: { - icon: 'fa-calendar-alt', - }, - link: { - icon: 'fa-link', - }, - responsible: { - icon: 'fa-user', - } - }, + fields: fields, + groups: groups, + data: options.data, onSuccess: function(data) { if (options.onSuccess) { @@ -537,7 +686,29 @@ function createPurchaseOrder(options={}) { location.href = `/order/purchase-order/${data.pk}/`; } }, - title: '{% trans "Create Purchase Order" %}', + title: options.title || '{% trans "Create Purchase Order" %}', + }); +} + +/* + * Duplicate an existing PurchaseOrder + * Provides user with option to duplicate line items for the order also. + */ +function duplicatePurchaseOrder(order_id, options={}) { + + options.duplicate_order = order_id; + + inventreeGet(`/api/order/po/${order_id}/`, {}, { + success: function(data) { + + // Clear out data we do not want to be duplicated + delete data['pk']; + delete data['reference']; + + options.data = data; + + createPurchaseOrder(options); + } }); } @@ -2465,7 +2636,7 @@ function loadSalesOrderTable(table, options) { return `
    `; }, onRefresh: function() { - loadPurchaseOrderTable(table, options); + loadSalesOrderTable(table, options); }, onLoadSuccess: function() { diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index 2b6e6f0f41..ebb2949d28 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -301,7 +301,11 @@ function categoryFields() { default_location: {}, default_keywords: { icon: 'fa-key', - } + }, + icon: { + help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Font Awesome.`, + placeholder: 'fas fa-tag', + }, }; } @@ -1039,20 +1043,34 @@ function loadPartPurchaseOrderTable(table, part_id, options={}) { switchable: true, sortable: true, formatter: function(value, row) { - if (row.target_date) { - var html = row.target_date; - if (row.overdue) { - html += ``; + var target = row.target_date || row.order_detail.target_date; + + var today = moment(); + + var overdue = row.overdue || false; + + if (target) { + if (moment(target) < today) { + overdue = true; } + } + + var html = '-'; + + if (row.target_date) { + html = row.target_date; - return html; } else if (row.order_detail && row.order_detail.target_date) { - return `${row.order_detail.target_date}`; - } else { - return '-'; + html = `${row.order_detail.target_date}`; } + + if (overdue) { + html += ``; + } + + return html; } }, { @@ -1456,46 +1474,52 @@ function loadPartTable(table, url, options={}) { title: '{% trans "Stock" %}', searchable: false, formatter: function(value, row) { - var link = '?display=part-stock'; - if (row.in_stock) { - // There IS stock available for this part + var text = ''; - // Is stock "low" (below the 'minimum_stock' quantity)? - if (row.minimum_stock && row.minimum_stock > row.in_stock) { - value += `{% trans "Low stock" %}`; - } else if (value == 0) { - if (row.ordering) { - // There is no available stock, but stock is on order - value = `0{% trans "On Order" %}: ${row.ordering}`; - link = '?display=purchase-orders'; - } else if (row.building) { - // There is no available stock, but stock is being built - value = `0{% trans "Building" %}: ${row.building}`; - link = '?display=build-orders'; - } else { - // There is no available stock - value = `0{% trans "No stock available" %}`; - } - } - } else { - // There IS NO stock available for this part + var total_stock = row.in_stock; - if (row.ordering) { - // There is no stock, but stock is on order - value = `0{% trans "On Order" %}: ${row.ordering}`; - link = '?display=purchase-orders'; - } else if (row.building) { - // There is no stock, but stock is being built - value = `0{% trans "Building" %}: ${row.building}`; - link = '?display=build-orders'; - } else { - // There is no stock - value = `0{% trans "No Stock" %}`; - } + if (row.variant_stock) { + total_stock += row.variant_stock; } - return renderLink(value, `/part/${row.pk}/${link}`); + if (row.unallocated_stock != row.in_stock) { + text = `${row.unallocated_stock} / ${total_stock}`; + } else { + text = `${total_stock}`; + } + + // Construct extra informational badges + var badges = ''; + + if (total_stock == 0) { + badges += ``; + } else if (total_stock < row.minimum_stock) { + badges += ``; + } + + if (row.ordering && row.ordering > 0) { + badges += renderLink( + ``, + `/part/${row.pk}/?display=purchase-orders` + ); + } + + if (row.building && row.building > 0) { + badges += renderLink( + ``, + `/part/${row.pk}/?display=build-orders` + ); + } + + if (row.variant_stock && row.variant_stock > 0) { + badges += ``; + } + + text = renderLink(text, `/part/${row.pk}/?display=part-stock`); + text += badges; + + return text; } }; @@ -1916,6 +1940,11 @@ function loadPartCategoryTable(table, options) { } } + const icon = row.icon || global_settings.PART_CATEGORY_DEFAULT_ICON; + if (icon) { + html += ``; + } + html += renderLink( value, `/part/category/${row.pk}/` @@ -2252,10 +2281,20 @@ function initPriceBreakSet(table, options) { } +/* + * Load a chart which displays projected scheduling information for a particular part. + * This takes into account: + * - Current stock levels / availability + * - Upcoming / scheduled build orders + * - Upcoming / scheduled sales orders + * - Upcoming / scheduled purchase orders + */ function loadPartSchedulingChart(canvas_id, part_id) { var part_info = null; + var was_error = false; + // First, grab updated data for the particular part inventreeGet(`/api/part/${part_id}/`, {}, { async: false, @@ -2264,16 +2303,32 @@ function loadPartSchedulingChart(canvas_id, part_id) { } }); + if (!part_info) { + console.error(`Error loading part information for part ${part_id}`); + return; + } + var today = moment(); - // Create an initial entry, using the available quantity - var stock_schedule = [ - { - date: today, - delta: 0, - label: '{% trans "Current Stock" %}', - } - ]; + /* Construct initial datasets for: + * - Scheduled quantity + * - Minimum speculative quantity + * - Maximum speculative quantity + */ + + var quantity_scheduled = [{ + date: today, + delta: 0, + }]; + + // We will construct the HTML table as we go + var table_html = ''; + + // The "known" initial stock quantity + var initial_stock_min = part_info.in_stock; + var initial_stock_max = part_info.in_stock; + + var n_entries = 0; /* Request scheduling information for the part. * Note that this information has already been 'curated' by the server, @@ -2285,59 +2340,269 @@ function loadPartSchedulingChart(canvas_id, part_id) { { async: false, success: function(response) { - response.forEach(function(entry) { - stock_schedule.push({ + + n_entries = response.length; + + for (var idx = 0; idx < response.length; idx++) { + + var entry = response[idx]; + var date = entry.date != null ? moment(entry.date) : null; + + var date_string = entry.date; + + if (date == null) { + date_string = '{% trans "No date specified" %}'; + date_string += ``; + } else if (date < today) { + date_string += ``; + } + + var quantity_string = entry.quantity + entry.speculative_quantity; + + if (entry.speculative_quantity != 0) { + quantity_string += ``; + } + + // Add an entry to the scheduling table + table_html += ` + + ${entry.label} + ${entry.title} + ${date_string} + ${quantity_string} + + `; + + // If the date is unknown or in the past, we cannot make use of this information + // So we update the "speculative quantity" + if (date == null || date < today) { + if (entry.quantity < 0) initial_stock_min += entry.quantity; + if (entry.speculative_quantity < 0) initial_stock_min += entry.speculative_quantity; + + if (entry.quantity > 0) initial_stock_max += entry.quantity; + if (entry.speculative_quantity > 0) initial_stock_max += entry.speculative_quantity; + + // We do not add this entry to the graph + continue; + } + + // Add an entry to the scheduled quantity + quantity_scheduled.push({ date: moment(entry.date), delta: entry.quantity, + speculative: entry.speculative_quantity, title: entry.title, label: entry.label, url: entry.url, }); - }); + } + }, + error: function(response) { + console.error(`Error retrieving scheduling information for part ${part_id}`); + was_error = true; } } ); // If no scheduling information is available for the part, // remove the chart and display a message instead - if (stock_schedule.length <= 1) { + if (n_entries < 1) { var message = `
    - {% trans "No scheduling information available for this part" %}.
    + {% trans "No scheduling information available for this part" %}.
    `; + if (was_error) { + message = ` +
    + {% trans "Error fetching scheduling information for this part" %}. +
    + `; + } + var canvas_element = $('#part-schedule-chart'); canvas_element.closest('div').html(message); + $('#part-schedule-table').hide(); + return; } - // Iterate through future "events" to calculate expected quantity + $('#part-schedule-table').show(); + var y_min = 0; + var y_max = 0; + + // Iterate through future "events" to calculate expected quantity values var quantity = part_info.in_stock; + var speculative_min = initial_stock_min; + var speculative_max = initial_stock_max; - for (var idx = 0; idx < stock_schedule.length; idx++) { + // Datasets for speculative quantity + var q_spec_min = []; + var q_spec_max = []; - quantity += stock_schedule[idx].delta; + for (var idx = 0; idx < quantity_scheduled.length; idx++) { - stock_schedule[idx].x = stock_schedule[idx].date.format('YYYY-MM-DD'); - stock_schedule[idx].y = quantity; + var speculative = quantity_scheduled[idx].speculative; + var date = quantity_scheduled[idx].date.format('YYYY-MM-DD'); + var delta = quantity_scheduled[idx].delta; + + // Update the running quantity + quantity += delta; + + quantity_scheduled[idx].x = date; + quantity_scheduled[idx].y = quantity; + + // Update minimum "speculative" quantity + speculative_min += delta; + speculative_max += delta; + + if (speculative < 0) { + speculative_min += speculative; + } else if (speculative > 0) { + speculative_max += speculative; + } + + q_spec_min.push({ + x: date, + y: speculative_min, + label: '', + title: '', + }); + + q_spec_max.push({ + x: date, + y: speculative_max, + label: '', + title: '', + }); + + // Update min / max values + if (quantity < y_min) y_min = quantity; + if (quantity > y_max) y_max = quantity; + + if (speculative_min < y_min) y_min = speculative_min; + if (speculative_max > y_max) y_max = speculative_max; } + // Add one extra data point at the end + var n = quantity_scheduled.length; + var final_date = quantity_scheduled[n - 1].date.add(1, 'd').format('YYYY-MM-DD'); + + quantity_scheduled.push({ + x: final_date, + y: quantity_scheduled[n - 1].y, + }); + + q_spec_min.push({ + x: final_date, + y: q_spec_min[n - 1].y, + }); + + q_spec_max.push({ + x: final_date, + y: q_spec_max[n - 1].y, + }); + var context = document.getElementById(canvas_id); - const data = { - datasets: [{ - label: '{% trans "Scheduled Stock Quantities" %}', - data: stock_schedule, - backgroundColor: 'rgb(220, 160, 80)', - borderWidth: 2, - borderColor: 'rgb(90, 130, 150)' - }], + var data = { + datasets: [ + { + label: '{% trans "Scheduled Stock Quantities" %}', + data: quantity_scheduled, + backgroundColor: 'rgba(160, 80, 220, 0.75)', + borderWidth: 3, + borderColor: 'rgb(160, 80, 220)' + }, + { + label: '{% trans "Minimum Quantity" %}', + data: q_spec_min, + backgroundColor: 'rgba(220, 160, 80, 0.25)', + borderWidth: 2, + borderColor: 'rgba(220, 160, 80, 0.35)', + borderDash: [10, 5], + fill: '-1', + }, + { + label: '{% trans "Maximum Quantity" %}', + data: q_spec_max, + backgroundColor: 'rgba(220, 160, 80, 0.25)', + borderWidth: 2, + borderColor: 'rgba(220, 160, 80, 0.35)', + borderDash: [10, 5], + fill: '-2', + }, + ], }; + var t_min = quantity_scheduled[0].x; + var t_max = quantity_scheduled[quantity_scheduled.length - 1].x; + + // Construct a 'zero stock' threshold line + data.datasets.push({ + data: [ + { + x: t_min, + y: 0, + }, + { + x: t_max, + y: 0, + } + ], + borderColor: 'rgba(250, 50, 50, 0.75)', + label: 'zero-stock-level', + }); + + // Construct a 'minimum stock' threshold line + if (part_info.minimum_stock) { + var minimum_stock_curve = [ + { + x: t_min, + y: part_info.minimum_stock, + }, + { + x: t_max, + y: part_info.minimum_stock, + } + ]; + + data.datasets.push({ + data: minimum_stock_curve, + label: '{% trans "Minimum Stock Level" %}', + backgroundColor: 'rgba(250, 50, 50, 0.1)', + borderColor: 'rgba(250, 50, 50, 0.5)', + borderDash: [5, 5], + fill: { + target: { + value: 0, + } + } + }); + } + + // Update the table + $('#part-schedule-table').find('tbody').html(table_html); + + if (y_max < part_info.minimum_stock) { + y_max = part_info.minimum_stock; + } + + var y_range = y_max - y_min; + + y_max += 0.1 * y_range; + y_min -= 0.1 * y_range; + + // Prevent errors if y-scale is weird + if (y_max == y_min) { + y_min -= 1; + y_max += 1; + } + return new Chart(context, { type: 'scatter', data: data, @@ -2347,29 +2612,31 @@ function loadPartSchedulingChart(canvas_id, part_id) { scales: { x: { type: 'time', - min: today.format(), + suggestedMin: today.format(), + suggestedMax: quantity_scheduled[quantity_scheduled.length - 1].x, position: 'bottom', time: { - unit: 'day', + minUnit: 'day', }, }, y: { - beginAtZero: true, + suggestedMin: y_min, + suggestedMax: y_max, } }, plugins: { tooltip: { callbacks: { label: function(item) { - return item.raw.label; + return item.raw.label || ''; }, beforeLabel: function(item) { - return item.raw.title; + return item.raw.title || ''; }, afterLabel: function(item) { var delta = item.raw.delta; - if (delta == 0) { + if (delta == null || delta == 0) { delta = ''; } else { delta = ` (${item.raw.delta > 0 ? '+' : ''}${item.raw.delta})`; @@ -2378,7 +2645,14 @@ function loadPartSchedulingChart(canvas_id, part_id) { return `{% trans "Quantity" %}: ${item.raw.y}${delta}`; } } - } + }, + legend: { + labels: { + filter: function(item, chart) { + return !item.text.includes('zero-stock-level'); + } + } + }, }, } }); diff --git a/InvenTree/templates/js/translated/report.js b/InvenTree/templates/js/translated/report.js index eac707f804..7187674635 100644 --- a/InvenTree/templates/js/translated/report.js +++ b/InvenTree/templates/js/translated/report.js @@ -152,7 +152,7 @@ function printTestReports(items) { href += `item=${item}&`; }); - window.location.href = href; + window.open(href); } } ); @@ -205,7 +205,7 @@ function printBuildReports(builds) { href += `build=${build}&`; }); - window.location.href = href; + window.open(href); } } ); @@ -259,7 +259,7 @@ function printBomReports(parts) { href += `part=${part}&`; }); - window.location.href = href; + window.open(href); } } ); @@ -313,7 +313,7 @@ function printPurchaseOrderReports(orders) { href += `order=${order}&`; }); - window.location.href = href; + window.open(href); } } ); @@ -367,7 +367,7 @@ function printSalesOrderReports(orders) { href += `order=${order}&`; }); - window.location.href = href; + window.open(href); } } ); diff --git a/InvenTree/templates/js/translated/search.js b/InvenTree/templates/js/translated/search.js index fbadaf7fe2..8143487723 100644 --- a/InvenTree/templates/js/translated/search.js +++ b/InvenTree/templates/js/translated/search.js @@ -98,7 +98,9 @@ var searchQueries = []; function searchTextChanged(event) { - searchText = $('#offcanvas-search').find('#search-input').val(); + var text = $('#offcanvas-search').find('#search-input').val(); + + searchText = sanitizeInputString(text); clearTimeout(searchInputTimer); searchInputTimer = setTimeout(updateSearch, 250); diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js index 21ef8c215d..67d5865b86 100644 --- a/InvenTree/templates/js/translated/stock.js +++ b/InvenTree/templates/js/translated/stock.js @@ -114,6 +114,10 @@ function stockLocationFields(options={}) { name: {}, description: {}, owner: {}, + icon: { + help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Font Awesome.`, + placeholder: 'fas fa-box', + }, }; if (options.parent) { @@ -2402,6 +2406,11 @@ function loadStockLocationTable(table, options) { } } + const icon = row.icon || global_settings.STOCK_LOCATION_DEFAULT_ICON; + if (icon) { + html += ``; + } + html += renderLink( value, `/stock/location/${row.pk}/` diff --git a/InvenTree/templates/js/translated/tables.js b/InvenTree/templates/js/translated/tables.js index befe967860..90e5f3f324 100644 --- a/InvenTree/templates/js/translated/tables.js +++ b/InvenTree/templates/js/translated/tables.js @@ -346,7 +346,9 @@ function convertQueryParameters(params, filters) { if ('original_search' in params) { var search = params['search'] || ''; - params['search'] = search + ' ' + params['original_search']; + var clean_search = sanitizeInputString(search + ' ' + params['original_search']); + + params['search'] = clean_search; delete params['original_search']; } diff --git a/InvenTree/templates/version.html b/InvenTree/templates/version.html index 52368679ae..5c0fa0142b 100644 --- a/InvenTree/templates/version.html +++ b/InvenTree/templates/version.html @@ -6,3 +6,4 @@ Django Version: {% django_version %} Database: {% inventree_db_engine %} Debug-Mode: {% inventree_in_debug_mode %} Deployed using Docker: {% inventree_docker_mode %} +Active plugins: {% plugins_info %} diff --git a/InvenTree/users/models.py b/InvenTree/users/models.py index b3bafb2657..959cccfeae 100644 --- a/InvenTree/users/models.py +++ b/InvenTree/users/models.py @@ -127,14 +127,15 @@ class RuleSet(models.Model): ], 'purchase_order': [ 'company_company', + 'company_manufacturerpart', + 'company_manufacturerpartparameter', + 'company_supplierpart', 'company_supplierpricebreak', 'order_purchaseorder', 'order_purchaseorderattachment', 'order_purchaseorderlineitem', 'order_purchaseorderextraline', - 'company_supplierpart', - 'company_manufacturerpart', - 'company_manufacturerpartparameter', + 'report_purchaseorderreport', ], 'sales_order': [ 'company_company', @@ -144,6 +145,7 @@ class RuleSet(models.Model): 'order_salesorderlineitem', 'order_salesorderextraline', 'order_salesordershipment', + 'report_salesorderreport', ] } diff --git a/README.md b/README.md index bb30d9133f..a0ca4e75e2 100644 --- a/README.md +++ b/README.md @@ -101,9 +101,9 @@ InvenTree is designed to be **extensible**, and provides multiple options for **
    DevOps
    diff --git a/requirements.in b/requirements.in index d02436ded1..2b871a6035 100644 --- a/requirements.in +++ b/requirements.in @@ -30,9 +30,11 @@ pillow # Image manipulation python-barcode[images] # Barcode generator qrcode[pil] # QR code generator rapidfuzz==0.7.6 # Fuzzy string matching +regex # Advanced regular expressions sentry-sdk # Error reporting (optional) setuptools # Standard depenedency tablib[xls,xlsx,yaml] # Support for XLS and XLSX formats +weasyprint==54.3 # PDF generation # Fixed sub-dependencies py-moneyed<2.0 # For django-money # FIXED 2022-06-18 as we need `moneyed.localization` diff --git a/requirements.txt b/requirements.txt index a5a09cc441..1faaf17eab 100644 --- a/requirements.txt +++ b/requirements.txt @@ -194,6 +194,8 @@ redis==3.5.3 # via # django-q # django-redis +regex==2022.8.17 + # via -r requirements.in requests==2.28.1 # via # coreapi @@ -230,8 +232,10 @@ urllib3==1.26.11 # sentry-sdk wcwidth==0.2.5 # via blessed -weasyprint==56.1 - # via django-weasyprint +weasyprint==54.3 + # via + # -r requirements.in + # django-weasyprint webencodings==0.5.1 # via # bleach diff --git a/tasks.py b/tasks.py index 86041f63e3..7962841e59 100644 --- a/tasks.py +++ b/tasks.py @@ -230,7 +230,10 @@ def update(c): """ # Recompile the translation files (.mo) # We do not run 'invoke translate' here, as that will touch the source (.po) files too! - manage(c, 'compilemessages', pty=True) + try: + manage(c, 'compilemessages', pty=True) + except Exception: + print("WARNING: Translation files could not be compiled:") # Data tasks @@ -264,7 +267,7 @@ def export_records(c, filename='data.json', overwrite=False, include_permissions print(f"Exporting database records to file '{filename}'") - if filename.exists() and overwrite is False: + if Path(filename).is_file() and overwrite is False: response = input("Warning: file already exists. Do you want to overwrite? [y/N]: ") response = str(response).strip().lower()